Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

[Closed] Social Networking Plugin (Facebook and Twitter) live!

Discussion in 'iOS and tvOS' started by prime31, Sep 19, 2010.

  1. dcp468

    dcp468

    Joined:
    Aug 25, 2009
    Posts:
    129
    Hi Prime

    *** Feature Request ***
    When logged into Facebook Is there any chance that you might be able to extend the Social Plugin to be able to grab the users profile picture so I could display that picture on a Texture within Unity (Potentially leveraging on the simple photo to texture loading method you mentioned in the Etcetera plugin).

    I would like to display their profile pic in Unity when they:
    1. After they successfully login,
    2. Return to the game but still logged in.

    Like you see in this picture:

    * Is it appropriate to link to this image (which isn't my game) it's just there as an example, ... I'll remove it however I'm not sure?

    Any chance between the millions of other things you do, you might be able to do this? :)

    Dean
     
  2. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @dcp, I'll put it on the to-do list. It would be a good addition and with the features of the Etcetera Plugin (image resizing and loading textures from images) it would be nice and easy to use.
     
  3. mforsyth

    mforsyth

    Joined:
    Sep 29, 2010
    Posts:
    54
    Sorry if I'm missing something obvious here, but does TwitterBinding.login ask for the username and password? Do I have to gather this info from the user myself before I call it? Does unity have a built in name/password input screeen?
     
  4. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @mforsyth, you need to get the users information before calling login. Unity doesn't have a built in username/password screen but they do have a text input.
     
  5. seon

    seon

    Joined:
    Jan 10, 2007
    Posts:
    1,441
    Unity has a built in method for this...

    iPhoneSettings.internetReachability

    Search for it in your docs :)
     
  6. mforsyth

    mforsyth

    Joined:
    Sep 29, 2010
    Posts:
    54
    the noob strikes again :eek: Okay, for testing I'm trying to gram a username and password from simple little gui buttons. but both buttons and keyboard change both variables at the same time. This might be the wrong place for this non plug-in question but if anyone has been through this before please have a look at this and steer my into the right direction:

    Code (csharp):
    1. var GoTwitterLogin : boolean = false;
    2. var inputTwtterName : String = "username";
    3. var inputTwitterPassword : String = "password";
    4. private var keyboard : iPhoneKeyboard;
    5. private var differentkeyboard : iPhoneKeyboard;
    6.  
    7. function OnGUI() {
    8.     if(GoTwitterLogin){
    9.         if (GUI.Button(Rect(10, 10, 200, 32), inputTwtterName)){
    10.             keyboard = iPhoneKeyboard.Open(inputTwtterName, iPhoneKeyboardType.EmailAddress);
    11.         }
    12.         if (GUI.Button(Rect(10, 50, 200, 32), inputTwitterPassword)){
    13.             differentkeyboard = iPhoneKeyboard.Open(inputTwitterPassword, iPhoneKeyboardType.Default);
    14.         }
    15.         if (keyboard){
    16.             inputTwtterName = keyboard.text;
    17.         }
    18.         if (differentkeyboard){
    19.             inputTwitterPassword = differentkeyboard.text;
    20.         }
    21.         if (GUI.Button (Rect (50,150, 75, 30), "Login")) {
    22.             consoleOutput.text = inputTwtterName + "\n" + inputTwitterPassword;
    23.             TwitterBinding.login(inputTwtterName,inputTwitterPassword);
    24.         }
    25.     }
    26. }
     
  7. CaptainKiyaku

    CaptainKiyaku

    Joined:
    Feb 8, 2009
    Posts:
    324
    So just to make sure before buying this, can i just use it as login check? I only want the user to login to facebook before he can use the apps additional features. I read there is the "isLoggedIn" method, so that will only return true if the user logged in via the login interface on the app?
     
  8. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @Kiyaku, you can use the plugin to just log a user in and not do anything more if you so desire.
     
  9. CaptainKiyaku

    CaptainKiyaku

    Joined:
    Feb 8, 2009
    Posts:
    324
    okay great, just making sure. thanks!
     
  10. eviltenchi_84

    eviltenchi_84

    Joined:
    Feb 18, 2010
    Posts:
    99
    on the iPad, the login windows comes in at iPhone size, is there a way to force those windows to come in at fullscreen iPad size?
     
  11. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @eviltenchi_84, as far as I know, there isn't. The Facebook dialog comes directly from their API.
     
  12. eviltenchi_84

    eviltenchi_84

    Joined:
    Feb 18, 2010
    Posts:
    99
    whenever the login screen pops up, it always takes a few touches when I hit the "x" or close buttons. Is there a reason that it takes so many touches to get rid of the login screen?
     
  13. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @eviltenchi_84, yup. Because Facebook made the dang button too small and/or it needs to load the javascript before it is functional. It isn't a native button. It's embedded in a UIWebView.
     
  14. eviltenchi_84

    eviltenchi_84

    Joined:
    Feb 18, 2010
    Posts:
    99
    I see. Was wondering why the fb connect stuff I tried out with xcode ran faster. Oh well, don't want to have to keep adding stuff to my project each time, heh.
     
  15. nw-admin

    nw-admin

    Joined:
    Jun 17, 2010
    Posts:
    53
    @ Prime31,
    With Prime31 Studio's "Social Networking (Twitter and Facebook)" Unity3 iPhone plugin, is it possible to post messages to XXXXX fanpage ?
     
  16. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @nwmohan, it's pretty simple to post to someone elses wall with the plugin's new graph API exposure.
     
  17. Captnian_legacy

    Captnian_legacy

    Joined:
    Aug 14, 2008
    Posts:
    25
    Hi,

    Login seems to be working and I want to now access their userID so I can create an account in our DB. However, I can't seem to get the graph to return it. Am I using the API correctly?

    Hashtable table = new Hashtable();
    FacebookBinding.graphRequest("me", "GET", table);

    if (table.ContainsKey("id"))
    {
    userIDString = table["id"].ToString();
    }

    I also check the size of the hash table as well and it always has 0 key value pairs. Anyone see what I'm doing wrong?

    Thanks!

    -Ian
     
  18. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @Captnain, that looks about right to me as long as you are sure "me" is GET and not POST (I would guess GET is the correct answer though). The one thing that does seem out of place (and it may just be that you included code from multiple sections) is that you don't seem to be in the facebookReceivedCustomRequest event handler when you are checking the result hashtable. There should be somewhere in your code something like:

    Code (csharp):
    1. FacebookManger.facebookReceivedCustomRequest += someCustomRequestHandler;
    2.  
    3. void someCustomRequestHandler( object result )
    4. {
    5.     // do something with the result here
    6. }
     
  19. polsen

    polsen

    Joined:
    Nov 2, 2010
    Posts:
    11
    Hi, I'm looking to post photos that a user has taken with the camera in my application to their facebook page. Can your plugin do this? If not can anyone suggest a plugin or code for this? Thanks!
     
  20. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @polson, the SocialNetworking Plugin allows you to post images to Facebook. The Etcetera Plugin will give you access to the camera. Using the two together you can achieve your goal.
     
  21. Captnian_legacy

    Captnian_legacy

    Joined:
    Aug 14, 2008
    Posts:
    25
    Thanks Prime31 for your help and support!

    After further debugging, it looks like when I send in the above graph request, that the facebookReceivedUsername event is being fired instead of the facebookReceivedCustomRequest. It almost seems like maybe somewhere there is a check if the username is included in the results from FB then use the facebookReceivedUsername event?

    Anyway, whenever I fire the above request, the debug logger logs "Facebook logged in users name: XXXX" which seems to only be called from the facebookReceivedUsername.

    Any help would be much appreciated!

    thanks!

    -Ian
     
  22. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @Captnian, you are correct. The "me" request is hijacked. I just uploaded an update to the plugin. Grab the package and all should be well.
     
  23. Captnian_legacy

    Captnian_legacy

    Joined:
    Aug 14, 2008
    Posts:
    25
    Thanks again for your Help!

    So, that did help and I got a lot further. The facebookReceivedCustomRequest is being called now :) However, the object being passed in is null. Am I doing something else wrong?

    void OnFacebookLogin()
    {
    Debug.Log("Logged in");
    FacebookBinding.graphRequest("me", "GET", new Hashtable());
    Debug.Log("Sending Graph Request");
    }

    void OnFacebookGraphRequestReceived(object obj)
    {
    Debug.Log("Received Graph Response");

    if (obj == null)
    {
    Debug.LogError("Graph Received but results are null");
    return;
    }

    }
     
  24. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @Captnian, grab the latest SocialNetworking unitypackage with your original download link. I just added a "me" request example. I also added a helper function to the ResultLogger static class (ResultLogger.logObject) that you can use to dump received Facebook data when messing around with the Graph API requests.
     
  25. dcp468

    dcp468

    Joined:
    Aug 25, 2009
    Posts:
    129
    Hi again

    I've successfully created a new method called "showPostMessageDialogWithMessageAndWithLinkAndLinkToImage" now it's basically combining these two methods you've created together:

    - showPostMessageDialogWithMessage( string message )
    - postMessageWithLinkAndLinkToImage( string message, string link, string linkName, string linkToImage, string caption )

    The result of combining these two methods is exactly what I want (I.E. a FB dialog where you can put your own message in with all the extra links and pics etc). When you can could you possibly update the plugin to combine these two methods together please.

    Cheers,
    Dean
     
  26. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @dcp468, feel free to email the changes over to me (questions at prime31.com) and I'll get it in an update.
     
  27. dcp468

    dcp468

    Joined:
    Aug 25, 2009
    Posts:
    129
    Hi Prime

    Can I get your advise on what you'd think the best/simplest approach would be to get the profile pic of the logged in Facebook user and then display the pic inside a 2D texture while the user is logged in.

    I was thinking of doing this:
    After the facebookReceivedCustomRequest event is fired after I press the Graph Request (me) button, ... I was playing with the ResultLogger file and getting the users FB id value with this code (see below) located inside the addHashtableToString method:
    Code (csharp):
    1. if (entry.Key.Equals("id"))
    2. {
    3.     Debug.Log("FB ID = " + entry.Value);    // this gives me the users FB identifier :)
    4. }
    I guess I would then:
    1. Create a URL to the users FB picture: http://graph.facebook.com/<user-id>/picture?type=small
    2. Try to load it into a GUITexture with this method www.LoadImageIntoTexture();

    Would you do it any different? and thanks for adding that method into the last update :)
     
  28. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @dcp468, it sounds like you have a good plan. The only thing you may want to watch for is making sure the texture memory gets freed when you are done with it. If I recall, there was a bug that may or may not have been fixed with regards to loading textures using the WWW class.
     
  29. dcp468

    dcp468

    Joined:
    Aug 25, 2009
    Posts:
    129
    Thanks, ... another thing, It's probably best if I manage the www.LoadImageIntoTexture stuff inside one of the C# files (I.E. result logger) however I've been doing all of my code in JS. When I get the ID value of the Facebook user within the addHashtableToString method how do I call a method in one of my JS scripts and pass this value across from C# to JS (I've never had to do it before)? From there I'd build the URL and start the www.LoadImageIntoTexture stuff.

    Cheers
     
  30. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @dcp468, don't fear the C#!! If there is one thing I could have for the holidays it would be no one ever using Javascript again! C# + Monodevelop gives you so many extra features that you couldn't even imagine! That being said, if you really must use JS events work the exact same so just listen to the event from JS:

    in start:
    Code (csharp):
    1. SocialNetworkingManager.facebookReceivedCustomRequest += facebookReceivedCustomRequest;
    somewhere else in your file:

    Code (csharp):
    1. void facebookReceivedCustomRequest( obj )
    2. {
    3.     // do something with the result here
    4. }
     
  31. dcp468

    dcp468

    Joined:
    Aug 25, 2009
    Posts:
    129
    Thanks Prime, I agree about C# and I'm planning to do my 2nd game in it. I feel I bit silly as I've been already registering for event listeners however the problem was I wasn't having any success in accessing the individual dictionary elements in JS when a custom object is returned that's why I was using the example code in the ResultLogger file because that was working.

    What I'm trying to do is get access to any of the facebook users profile data (in particular the users facebook id) after the facebookReceivedCustomRequest( obj ) gets triggered. Note: I'm not too sure how to iterate over the returned object in JS


    My Code:
    Code (csharp):
    1. // URL FORMAT IS "http://graph.facebook.com/<facebook id>/picture?type=small";
    2. var fbURL;
    3. var urlPrefix : String = "http://graph.facebook.com/";
    4. var urlPostfix : String = "/picture?type=small";
    5. var facebookTexture : GUITexture;
    6. var retrievingProfilePicture : boolean = false;
    7.  
    8.  
    9. function Start ()
    10. {
    11.     if (iPhoneSettings.internetReachability == iPhoneNetworkReachability.ReachableViaWiFiNetwork)
    12.     {
    13.        
    14.         // register event listeners
    15.         SocialNetworkingManager.facebookLogin += facebookLogin;
    16.         SocialNetworkingManager.facebookReceivedCustomRequest += facebookReceivedCustomRequest;
    17.        
    18.         FacebookBinding.init( "95160c8cfdfec5f834a3a75e********" );
    19.    
    20.         if (FacebookBinding.isLoggedIn())
    21.         {
    22.             Debug.Log("Already logged into facebook");
    23.             getUsersFacebookProfile();
    24.         }
    25.    
    26.     }
    27.    
    28. }
    29.  
    30.  
    31. function facebookLogin()
    32. {
    33.     Debug.Log("Successfully logged into facebook");
    34.     // logged in to Facebook now get their profile
    35.     getUsersFacebookProfile();
    36. }
    37.  
    38. function getUsersFacebookProfile ()
    39. {
    40.     // get the users facebook profile
    41.     FacebookBinding.graphRequest( "me", "GET", new Hashtable() );
    42. }
    43.  
    44. function facebookReceivedCustomRequest( obj )
    45. {
    46.     // do something with the result here
    47.    
    48.     var facebookID : String;
    49.    
    50.     // loop through all of the items in the dictionary
    51.     for (var entry in obj )
    52.     {
    53.         Debug.Log(entry.ToString()); // This returns a System.Collections.DictionaryEntry so I'm not sure how to access the individual elements
    54.         /*
    55.             I want to find ID and get the value so i can build the URL to get the profile picture
    56.             facebookID = ??????
    57.         */ 
    58.     }
    59.  
    60.     // build the url to get the profile picture of the logged in facebook user
    61.     fbURL = urlPrefix + facebookID + urlPostfix;
    62.    
    63.     // get the profile picture
    64.     getUserFacebookProfilePicture();
    65.    
    66. }
    67.  
    68. function getUserFacebookProfilePicture ()
    69. {
    70.        
    71.     while(!retrievingProfilePicture)
    72.     {
    73.         // Start a download of the given URL
    74.         var www = new WWW(fbURL);
    75.  
    76.         // wait until the download is done
    77.         yield www;
    78.  
    79.         // assign the downloaded image to the main texture of the object
    80.         www.LoadImageIntoTexture(facebookTexture.texture);
    81.        
    82.         // stop trying to retrieve the picture
    83.         retrievingProfilePicture = true;
    84.    
    85.     }
    86.    
    87.     Debug.Log("Retrieved the users facebook profile picture :)");
    88.    
    89. }
    90.  
    Well everything works and I can get my profile picture to show up in the texture if I hard code my Facebook ID however I'm just not sure how to iterate over the returned object in JS to access the individual key/value elements at run time.

    I was trying code like this but it doesn't work:
    Code (csharp):
    1. entry["id"].ToString()
     
  32. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @dcp468, the custom graph requests all get either a Hashtable or an ArrayList as a return value. For your loop something like the following might work:


     
  33. dcp468

    dcp468

    Joined:
    Aug 25, 2009
    Posts:
    129
    Yeah I've already tried:
    Code (csharp):
    1. if( entry.Key == "id" )
    2. {
    3.     Debug.Log("Unity --> FB ID VALUE = " + entry.Value.ToString());
    4. }
    but it throws an exception:
    Code (csharp):
    1. ExecutionEngineException: Attempting to JIT compile method '(wrapper dynamic-method) System.Collections.DictionaryEntry:DictionaryEntry$get_Key$ (object,object[])' while running with --aot-only.
     
  34. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @dcp468, jeeze, you can't even use a DictionaryEntry...that's just nuts. How about this:

     
  35. dcp468

    dcp468

    Joined:
    Aug 25, 2009
    Posts:
    129
    Hi Prime

    FYI and others this works :)

    Code (csharp):
    1. function facebookReceivedCustomRequest( obj )
    2. {
    3.     // do something with the result here
    4.    
    5.     var ht : Hashtable = new Hashtable();
    6.     ht = obj;
    7.  
    8.         // prints only the value associated with the id of the user
    9.     Debug.Log(ht["id"].ToString());
    10.  
    11.         // prints all the keys  values
    12.     for (var dictEntry : DictionaryEntry in ht)
    13.     {
    14.         Debug.Log(dictEntry.Key.ToString() + ", " + dictEntry.Value.ToString());
    15.     }
    16.    
    17. }
     
  36. unityandyou

    unityandyou

    Joined:
    Jun 25, 2010
    Posts:
    50
    Looks Very Good! Lookin into getting it.
     
  37. dcp468

    dcp468

    Joined:
    Aug 25, 2009
    Posts:
    129
    Hi Prime

    I think I've encountered a bug as it's occurred several times now over the course of a few days and I cannot easily replicate it. Basically it sometimes tells me I'm NOT currently logged in, which is wrong as I am logged in.

    The code:
    Code (csharp):
    1. function Start ()
    2. {
    3.    
    4.     if (iPhoneSettings.internetReachability != iPhoneNetworkReachability.NotReachable)
    5.     {
    6.        
    7.         msg.text += "Network - OK \n";
    8.        
    9.                 // register event listeners
    10.         SocialNetworkingManager.facebookLogin += facebookLogin;
    11.         SocialNetworkingManager.facebookReceivedCustomRequest += facebookReceivedCustomRequest;
    12.        
    13.         FacebookBinding.init( "95160c8cfdfec5f834a3a75e0bb26f78" );
    14.        
    15.         if (FacebookBinding.isLoggedIn())
    16.         {
    17.             msg.text +=  "FACEBOOK - already Logged in \n";
    18.             getUsersFacebookProfile();
    19.         }
    20.         else
    21.         {
    22.             msg.text +=  "FACEBOOK - Not logged in \n";
    23.         }
    24.    
    25.     }
    26.     else
    27.     {
    28.         msg.text +=  "No network \n";  
    29.     }
    30.    
    31. }
    This code works fine 95% of the time however and I've noticed this more when I haven't touched it in a few hours and I start it up again (FYI: It starts afresh) it tells me I'm NOT LOGGED IN. However If I click the GUI Button LOGIN button you supply as part of your demo it does work. Note: I've left out some code in this example to do with getting the users profile and downloading the profile pic. I've tried adding in a delay in case the Init needed more time to take effect before I check if the user is logged in however it doesn't have any impact.

    Any thoughts?
     
  38. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @dcp468, this happens when the actual session token that the plugin holds is no longer valid but there is still some type of auth token the Facebook.com webpage uses (most likely a cookie). There is no workaround at this time. You can try opening a feature request with the Facebook Connect developers.
     
  39. xcodeusa

    xcodeusa

    Joined:
    Jun 27, 2009
    Posts:
    26
    Hi, I'm trying to use the postPhoto function and the parameters is the filepath and the caption. The file I'm trying to post is in the documents directory. So I run these lines:

    string pathToImage = Application.dataPath.Replace("/talkinghuggable.app/Data", "/Documents/");
    FacebookBinding.postImage( pathToImage + "TALKINGHUGGABLE.png", "yay")

    But it's saying the file doesn't exist. I'm not too sure what I'm doing wrong any input would help a bunch.

    Oh and the console log outputs this:

    image does not exist: /var/mobile/Applications/B8B09C89-F36A-48F6-87AC-D9E9D2DA4DDD/Documents/TALKINGHUGGABLE.png
     
  40. Aiursrage2k

    Aiursrage2k

    Joined:
    Nov 1, 2009
    Posts:
    4,835
    I had the same problem what I found was that if you just comment out the line that checked if the file existed it would work (if you are sure it is there).
     
  41. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @xcodeusa dn aiursrage2k, not sure how that one slipped in there but change the line to:

    Notice the "!". That is the only change. I will push an official update out in a few minutes.
     
  42. xcodeusa

    xcodeusa

    Joined:
    Jun 27, 2009
    Posts:
    26
    wow, thanks for the help. Taking out the check made everything work.
     
  43. deepak

    deepak

    Joined:
    Aug 10, 2010
    Posts:
    44
    Hi Prime

    Is it possible to post on user's wall on twitter without Xauth? As Xauth is not granted for testing purpose and we are testing an application using social networking plugin.

    Thanks
     
  44. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @deepak, Xauth is 100% required. When you setup your application with Twitter don't put "test test test" all over it. Just set it up as if it's a real application.
     
  45. Jason-H

    Jason-H

    Joined:
    Nov 5, 2010
    Posts:
    87
    @Prime31

    Is it possible to give users the screen that pops up on other Facebook enabled apps that tells the user what they're about to publish and gives them the two options to either "Publish" or "Skip". This way users know what's being posted to their walls as at the moment it just does it automatically with just one in-app button press.

    Thanks.
     
  46. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @jasonh, do you mean like this:

    $IMG_0346.PNG

    If so, it's already there.
     
  47. dcp468

    dcp468

    Joined:
    Aug 25, 2009
    Posts:
    129
    @jasonh

    This is the method your looking for (see below) which provides that functionality you're asking :)
    Code (csharp):
    1. // Shows a dialog allowing a user to edit the message with a link, a name for the link, a link to an image and a caption for the image
    2. public static void showPostMessageDialogWithMessageAndLinkAndLinkToImage( string message, string link, string linkName, string linkToImage, string caption )
     
  48. deepak

    deepak

    Joined:
    Aug 10, 2010
    Posts:
    44
    Is it possible for a user, to post on a facebook fan's wall page without being a "fan" of that page from iphone application using "Social Networking Plugin"? If not, can anyone please help me, how to make a user being "fan" of the page from the application?

    Thanks in advance.
     
  49. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @deepak, I am not sure if Facebook allows posting to a fan page that you are not a fan of. You would have to check their docs for the answer to that one. You can easily implement any of the Graph API requests available by using the plugins graphRequest method.
     
  50. sonicviz

    sonicviz

    Joined:
    May 19, 2009
    Posts:
    1,051
    Hi,
    I bought both the SNS and Etcetera plugins and am integrating them into an upcoming release.
    Tests work fine but I have a problem doing a post the first time round.

    The FacebookBinding.init I do in Start()

    I'm using EZGui, and if a new highscore is reached (or first time) a facebook button shows that calls a method: (psuedo code, posting this from PC dektop and project is on mactop):
    ----
    if (!facebookbinding.isloggedin)
    facebookbinding.login();

    Facebookbinding.postmessagewithlink();

    -----

    The problem is first time round it pops up the login ok (and passes though fine if already logged in) but the postmessage is not happening.
    I have to hit the button a second time to get a message posted the first time, if that makes sense - from then on it's fine - because the isLoggedIn returns true I suspect.

    Do I need to do a yield return on the login method? (actually tried that, but EZGui does not seem to like IEnumerator methods, only void)
    How can I get multiple Facebookbinding functions fired from the same method?

    Or is there some other way to structure this? I basically don't want to ask the player to login until they actually hit the FB button.

    ty!