【问题标题】:facebook c# sdk getting startedfacebook c# sdk 入门
【发布时间】:2014-11-15 22:21:17
【问题描述】:

我想编写一个控制台应用程序,每天早上自动将信息发布到我的墙上一次。

我已注册 facebook developer 并拥有 AppID 和 App Secret

我一直在尝试使用 C# facebook SDK 并查看了几个示例。

似乎示例获取了用户令牌 - 但必须使用 Windows 窗体中的浏览器。这是一个自动化过程 - 所以我不想让用户在场。

我还使用应用程序令牌创建了一些示例 - 但它似乎无法写入墙壁。

我很快就写了相当于 Twitter 的东西。我一定是在这里遗漏了什么???

正确的方法是什么?

看来我只需要: FaceBookClient(appID, appSecret) 然后就 FaceBookClient.Put(消息) ???

补充说明:

玩转 C# facebook sdk winform 应用程序 我不得不更改他们的 FacebookLoginDialog.cs 以使用以下 URL:

https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=APPID&client_secret=APPSECRET&scope=user_about_me,publish_stream,offline_access

在 WebBrowser.DocumentText 中返回一个访问键

如果我再打电话:

            var fb = new FacebookClient(_accessToken);
            dynamic parameters = new ExpandoObject();
            parameters.message = "Hello World!";
            dynamic result = fb.Post("me/feed", parameters);

我得到了例外:

(OAuthException) 必须使用活动访问令牌来查询有关当前用户的信息。

如果我将上面的代码更改为不使用该访问令牌 - 而是使用 appID 和 Appsecret:

           FacebookClient myFacebookClient = new FacebookClient("APPID", "APPSECRET");
            dynamic parameters = new ExpandoObject();
            parameters.message = "Hello World!";
            dynamic result = myFacebookClient.Post("me/feed", parameters);

然后我得到了异常:

(OAuthException) 必须使用活动访问令牌来查询有关当前用户的信息。

我猜是同一个例外

【问题讨论】:

    标签: c# facebook sdk facebook-c#-sdk


    【解决方案1】:

    这是我找到的。

    http://facebooksdk.codeplex.com/下载facebook C# sdk源代码和示例

    解压缩代码并将名为 CS-WinForms 的 Facebook C# SDK 示例加载到 Visual Studio 中。

    在 Form1.cs 的顶部 - 输入您的应用程序 ID

    运行应用程序。

    Form1.cs 弹出一个按钮“登录到 Facebook”。单击按钮。

    FacebookLoginDialog.cs 会弹出一个浏览器窗口,其中显示 facebook 请求权限。

    FacebookLoginDialog.cs 创建一个浏览器窗口,该窗口将转到您在 Facebook 上的用户并请求权限。默认情况下,这些权限是:user_about_me、publish_stream、offline_access。

    Offline_access 表示您获得的 AccessToken - 永不过期

    在 Facebook 中单击“确定”以允许应用程序访问您的 Facebook 数据。

    FacebookLoginDialog.cs 应该会发现您已登录并获得永不过期的访问令牌。

    访问令牌是一个字符串。

    插入一个断点,以便您可以复制此访问令牌。保存此访问令牌,以便以后使用它访问 Facebook。

    Facebook 开发者网站有一些工具可以用来检查访问令牌 https://developers.facebook.com/tools/debug/access_token 您可以输入您的访问令牌并单击“调试”,它应该列出您的应用程序 ID、用户 ID,对于“过期”,它应该显示“从不”。

    一旦你有了这个访问令牌,你就可以简单地编写如下代码:

                            var fb = new FacebookClient(AccessToken);
                            dynamic parameters = new ExpandoObject();
                            parameters.message = FacebookString;
                            dynamic result = fb.Post("me/feed", parameters);
                            var id = result.id;
    

    向 Facebook 发布消息!

    【讨论】:

    • 您好,我找不到您所说的示例,您可以给我发个链接吗?
    • 你好,自从原始帖子以来已经有很长时间了,没有人有任何示例代码的工作链接。 Wayback Machine 没有任何记录。
    【解决方案2】:

    除了 publish_stream 之外,您还应该请求 offline_access。获得永不过期的令牌后,将其存储在您的应用中。

    【讨论】:

    • 来自 facebook sdk winform 示例应用程序 - 我有 aboutme、publishstream 和 offlineaccess。
    • 运行您通过developers.facebook.com/tools/debug 获得的用户访问令牌以进行检查。
    猜你喜欢
    • 2023-03-10
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多