Интеграция Facebook SDK в Unity3D


Мне не спится:) Давно хотел записать урок по интеграции Facebook SDK в Unity3d. Тем более, что это очень легко и займет ~20 минут.

Какие преимущества Facebook SDK?

-Поддержка iOS, Andoid, Web
-Простота использования
-Постоянные обновления и доработка от команды Facebook
-DeepLining, Feeds, Posts, Payment и Open Graph — все это из одной коробки!

Смотреть видео под катом (код там же)



Если в двух словах описать весь процесс, то:

1. Нужно создать приложение на фейсбуке
2. Скачать и импортнуть Facebook SDK
3. Авторизоваться и дергать нужные методы. Все!)

Все важные поля в настройках приложения выделил:




Примечание: как я и говорил в видео, с шириной экрана пока не разобрался. Но можно делать игры с шириной 760 и выставлять не Fluid, а Fixed 760px.

Документацияперейти

Скачать Facebook SDK for Unityперейти

Центр управления приложениями(для создания и настройки приложения) — перейти

Texas Duel (прув на мой пост:)) — перейти

Файл Util.cs, который почему-то забыли добавить в SDK:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Facebook.MiniJSON;

public class Util : ScriptableObject
{
    public static string GetPictureURL(string facebookID, int? width = null, int? height = null, string type = null)
    {
        string url = string.Format("/{0}/picture", facebookID);
        string query = width != null ? "&width=" + width.ToString() : "";
        query += height != null ? "&height=" + height.ToString() : "";
        query += type != null ? "&type=" + type : "";
        if (query != "") url += ("?g" + query);
        return url;
    }

    public static Dictionary<string, string> RandomFriend(List<object> friends)
    {
        var fd = ((Dictionary<string, object>)(friends[Random.Range(0, friends.Count - 1)]));
        var friend = new Dictionary<string, string>();
        friend["id"] = (string)fd["id"];
        friend["first_name"] = (string)fd["first_name"];
        return friend;
    }

    public static Dictionary<string, string> DeserializeJSONProfile(string response)
    {
        var responseObject = Json.Deserialize(response) as Dictionary<string, object>;
        object nameH;
        var profile = new Dictionary<string, string>();
        if (responseObject.TryGetValue("first_name", out nameH))
        {
            profile["first_name"] = (string)nameH;
        }
        return profile;
    }

    public static List<object> DeserializeScores(string response)
    {

        var responseObject = Json.Deserialize(response) as Dictionary<string, object>;
        object scoresh;
        var scores = new List<object>();
        if (responseObject.TryGetValue("data", out scoresh))
        {
            scores = (List<object>)scoresh;
        }

        return scores;
    }

    public static List<object> DeserializeJSONFriends(string response)
    {
        var responseObject = Json.Deserialize(response) as Dictionary<string, object>;
        object friendsH;
        var friends = new List<object>();
        if (responseObject.TryGetValue("friends", out friendsH))
        {
            friends = (List<object>)(((Dictionary<string, object>)friendsH)["data"]);
        }
        return friends;
    }
}

2 комментария

avatar
Спасибо. Хорошо сделал. А вот как насчет добавить Andoid версию «Интеграция Facebook SDK в Unity3D»?
  • Jurp
  • 0
avatar
Не думаю, что процесс будет сильно отличаться (настроить приложение только нужно по-другому, в коде должно быть то же самое). Если будет время, то запишу.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.