2012-04-11 71 views
3

我使用C#在MonoDevelop与Graph API与用户的Facebook页面交互。访问Facebook的职位等与图形API c#unity3d

虽然我已经彻底搞糊涂了。

这些是正确的步骤吗?

  1. 创建的Facebook应用程序在这里:http://developers.facebook.com/
  2. programmaticly得到使用的应用程序ID和应用程序秘密访问令牌。

如果是这样,我该如何去发布到用户墙?

我已经做了大量的研究,但一直无法找到任何特别有用的东西。

我试过使用这个ASP.NET Post to Facebook Wall,但没有任何东西出现在墙上。

有没有一个教程或一些可以带我通过这个过程好又慢?

所有的帮助或指针赞赏。

如前所述,我正在使用unity3d,c#单声道和脸谱图api。

[编辑]我喜欢它在android上工作。

回答

2

使用C# Facebook library。有一个示例项目叫做facebook-aspnet-sample,它显示你的身份验证和登录。另外,看看这个tutorial page,它涉及如何从Unity3d游戏连接到Facebook。 tut很短,但演示项目下载很有用。

也有plugins for sale,使Unity3D的Facebook访问。

+0

我是链接的作者教程和我已经重新访问过这个。用户不需要复制和粘贴任何访问令牌,它是完全自动的。检查出来:http://www.ifc0nfig.com/accessing-facebook-unity-game-2/ – eth0 2013-08-11 00:22:21

+0

@ eth0感谢您的更新! – 2013-08-12 02:12:01

+0

感谢Gunnar的建议,我发现这个插件是最好的https://www.assetstore.unity3d.com/en/#!/content/16676 – Mastro 2015-01-04 01:54:33

1

在您的FB应用程序准备好后,的确需要获取令牌。但是,令牌总是在用户的上下文中请求 - 因此用户应该在网站上进行认证。这意味着应该显示Facebook登录对话框 - 这将询问用户他是否确实信任该应用程序。有不同的方式来做到这一点 - 这里是关于FB认证的通用页面:https://developers.facebook.com/docs/authentication/,这个解释了如何在Android中执行此操作:https://developers.facebook.com/docs/mobile/android/sso/

如果您想要使用JavaScript身份验证(我个人在MVC3中使用项目),这里是一个从https://developers.facebook.com/docs/authentication/client-side/这是做了一点点修改的例子。请记住将应用程序ID和权限更改为您需要的。

<div id="fb-root"></div> 
<script> 
    // Load the SDK Asynchronously 
    (function (d) { 
     var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
     if (d.getElementById(id)) { return; } 
     js = d.createElement('script'); js.id = id; js.async = true; 
     js.src = "//connect.facebook.net/en_US/all.js"; 
     ref.parentNode.insertBefore(js, ref); 
    } (document)); 

    // Init the SDK upon load 
    window.fbAsyncInit = function() { 
     FB.init({ 
      appId: '@EventController.FB_APP_ID', // App ID 
      channelUrl: '//' + window.location.hostname + '/channel.htm', // Path to your Channel File 
      status: false, // check login status 
      cookie: false, // enable cookies to allow the server to access the session 
      xfbml: false // parse XFBML 
     }); 

     // listen for and handle auth.statusChange events 
     FB.Event.subscribe('auth.statusChange', function (response) { 
      if (response.authResponse) { 
       // user has auth'd your app and is logged into Facebook 
       FB.api('/me', function (me) { 
        // get info about the user, for example 
       }) 
       //document.getElementById('auth-loggedout').style.display = 'none'; 
      } else { 
       // user has not auth'd your app, or is not logged into Facebook 
       //document.getElementById('auth-loggedout').style.display = 'block'; 
      } 
     }); 

     // respond to clicks on the login and logout links 
     document.getElementById('auth-loginlink').addEventListener('click', function() { 
      FB.login(function (response) { 
       // handle the response 
       if (response.authResponse != null) { 
        // HERE IS THE TOKEN YOU CAN USE 
        var token = response.authResponse.accessToken; 
       } else { 

       } 
       // AND THESE ARE THE PERMISSIONS YOU WANT YOUR APP TO REQUEST 
      }, { scope: 'manage_pages,publish_stream' }); 
     }); 
    }; 
</script> 

一个catch这里 - FB应用程序应该有你的网站URL(即使是http://localhost/)在应用程序 - >设置 - >网站URL字段。你也应该把channel.htm文件到您的网站的根在它的一行代码:

<script src="//connect.facebook.net/en_US/all.js"> 
+0

这并不是我正在寻找的,因为它使用网页代码。我想我已经通过提及到asp.net文章的链接抛弃了你。我没有在web环境中使用代码,而是在c#Unity环境中使用代码。 – Dave 2012-04-21 14:39:15

+0

除非您硬编码用户的访问令牌,否则无法从服务器端代码获取它,而无需与用户交互。FB应用程序应始终向用户显示,然后您的应用程序才能代表用户执行任何操作。如果你的目标是Android,那么你可以使用FB的Android SDK:https://developers.facebook.com/docs/reference/androidsdk/ – avs099 2012-04-21 18:28:28

+0

谢谢,我已经把facebook android sdk插入eclipse,导出到jar,并使用IKVM创建一个DLL(做了谷歌搜索如何做到这一点)我可以使用C#和一切似乎在IDE中正常工作。但是,编译到设备时出现以下错误:“太多堆段” – Dave 2012-04-21 19:32:59