使用 Graph API c# unity3d 访问 facebook 以获取帖子等

本文关键字:获取 facebook 访问 Graph API unity3d 使用 | 更新日期: 2023-09-27 18:30:41

我在MonoDevelop中使用C#和Graph API与用户Facebook页面进行交互。

不过我已经彻底糊涂了。

这些是正确的步骤吗?

  1. 在这里创建脸书应用程序 : http://developers.facebook.com/
  2. 使用应用 ID 和应用机密以编程方式获取访问令牌。

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

我做了很多研究,但找不到任何特别有用的东西。

我试过用这个 ASP.NET 帖子到Facebook墙,但墙上什么都没有出现。

有没有教程或其他东西可以带我顺利而缓慢地完成整个过程?

感谢所有帮助或指点。

如前所述,我正在使用unity3d,mono中的c#和facebook graph api。

[编辑] 我希望它在安卓上运行。

使用 Graph API c# unity3d 访问 facebook 以获取帖子等

使用 C# Facebook 库。有一个名为facebook-aspnet-sample的示例项目,它显示了身份验证和登录。另外,请查看本教程页面,其中介绍了如何从Unity3d游戏连接到Facebook。图特很短,但演示项目下载很有用。

还有一些插件可供出售,可以从Unity3d访问Facebook。

你准备好你的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 和权限更改为所需的 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>

这里有一个问题 - 您的FB应用程序应该在应用程序 ->设置 ->网站URL字段中具有您的网站URL(即使它是 http://localhost/)。此外,您应该将频道.htm文件放入网站的根目录中,其中包含一行代码:

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