- Home /
integrate facebook with android
Hello everyone, I have a problem to integrate facebook for android. For now I have built for the web and working properly. What I want to do is click on the logo fb I must share the result. Android with Unity as I do? This is what I did
using UnityEngine;
using System.Collections;
using System;
using System.Collections.Generic;
public class GameOver : ConsoleBase {
public Texture[] fbLogo= new Texture[1];
public GameObject piano;
public AudioClip pop;
int cont = 0;
bool isInit = false;
string hasPerm = "***";
public string fbname="";
///////////////////////////////////////////DIALOG///////////////////////////////////////
string FeedToId = "";
string FeedLink = "http://www.facebook.com";
string FeedLinkName = "Christmas Ball";
string FeedLinkCaption = "";
string FeedLinkDescription = "";
string FeedPicture = "";
string FeedMediaSource = "";
string FeedActionName = "";
string FeedActionLink = "";
string FeedReference = "";
bool IncludeFeedProperties = false;
public GameObject go;
public Dati other;
private Dictionary<string, string[]> FeedProperties = new Dictionary<string, string[]>();
void Start () {
go = GameObject.FindWithTag("vuoto");
other = (Dati) go.GetComponent(typeof(Dati));
print(other.punteggio);
}
void Update () {
RaycastHit hit = new RaycastHit();
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if(Physics.Raycast(ray, out hit))
{
if(hit.collider.tag == "FB")
{
cont +=1;
piano.renderer.material.mainTexture = fbLogo[1];
CallFBInit();
if(cont ==1){
audio.PlayOneShot(pop);
}
}
else{
cont = 0;
piano.renderer.material.mainTexture = fbLogo[0];
}
}
if(Input.GetButtonDown("Fire1") || Input.touchCount > 0 )
{
if(Physics.Raycast(ray, out hit))
{
if(hit.collider.tag == "FB")
{
print("Funzione FB");
CallFBInit();
}
}
}
}
void OnGUI()
{
GUI.Label(new Rect(10, 10, 100, 20), other.punteggio.ToString());
}
/////////////////////////FACEBOOK///////////////////////////////
private void CallFBInit()
{
FB.Init(OnInitComplete, OnHideUnity);
}
private void OnInitComplete()
{
Debug.Log("FB.Init completed: Is user logged in? " + FB.IsLoggedIn);
isInit = true;
CallFBLogin();
}
private void OnHideUnity(bool isGameShown)
{
Debug.Log("Is game showing? " + isGameShown);
}
private void CallFBLogin()
{
FB.Login("publish_actions, user_friends", LoginCallback);
}
void LoginCallback(FBResult result)
{
string lastResponse;
if (result.Error != null)
lastResponse = "Error Response:\n" + result.Error;
else if (!FB.IsLoggedIn)
{
lastResponse = "Login cancelled by Player";
}
else
{
lastResponse = "Login was successful!";
}
Debug.Log("lastResponse: "+lastResponse);
CallPermissionCheck ();
}
void CallPermissionCheck()
{
FB.API("/me/permissions", Facebook.HttpMethod.GET, PermissionCallback);
CallFBFeed();
}
void PermissionCallback(FBResult result)
{
if (!String.IsNullOrEmpty(result.Error))
{
Debug.Log("Error Response:\n" + result.Error);
}
else
{
Debug.Log("Get user's permissions was successful!");
Debug.Log ("Result: "+result.Text);
var permissionDict = Facebook.MiniJSON.Json.Deserialize(result.Text) as Dictionary<string, object>;
IDictionary persmissionData = permissionDict;
foreach(IDictionary perm in (List<object>)persmissionData["data"])
{
if((string)perm["permission"] == "user_friends")
{
hasPerm = (string)perm["status"];
// This will deauthorise the permissions for the user and then log them out
/*
if(hasPerm != "granted")
{
FB.API ("me/permissions", Facebook.HttpMethod.DELETE, RemovePermissionCallback);
FB.Logout();
}
*/
FB.API("me?fields=name", Facebook.HttpMethod.GET, NameCallBack);
}
}
}
}
void RemovePermissionCallback(FBResult result)
{
if (!String.IsNullOrEmpty(result.Error))
{
Debug.Log("Error Response:\n" + result.Error);
}
else
{
Debug.Log("RemovePermissionCallback was successful!");
Debug.Log ("Result: "+result.Text);
}
}
void NameCallBack(FBResult result)
{
IDictionary dict = Facebook.MiniJSON.Json.Deserialize(result.Text) as IDictionary;
fbname = dict["name"].ToString();
print(fbname);
}
private void CallFBFeed()
{
Dictionary<string, string[]> feedProperties = null;
if (IncludeFeedProperties)
{
feedProperties = FeedProperties;
}
FB.Feed(
toId: FeedToId,
link: FeedLink,
linkName: FeedLinkName,
linkCaption: FeedLinkCaption,
linkDescription: FeedLinkDescription = fbname +" ha totalizzato "+other.punteggio +" punti giocando a Christmas Ball"+fbname,
picture: FeedPicture,
mediaSource: FeedMediaSource,
actionName: FeedActionName,
actionLink: FeedActionLink,
reference: FeedReference,
properties: feedProperties,
callback: Callback
);
}
}
Comment
Your answer
Follow this Question
Related Questions
Facebook Login - Android 1 Answer
App Link URL for Facebook App Invite 1 Answer
Share Screenshot Image to Facebook with Facebook SDK 0 Answers
Facebook app review for screenshot share 0 Answers
Facebook SDK(android) - error 1 Answer