我想写一个控制台应用程序,每天早上自动将信息发布到我的墙上。
我已经注册了Facebook开发者并拥有AppID和App Secret
我一直在尝试使用C#facebook SDK,并查看了几个示例。
似乎示例获取用户令牌 - 但必须使用Windows窗体中的浏览器。这是一个自动化过程 - 所以我不想让用户在场。
我还使用应用程序令牌创建了一些示例 - 但它似乎无法写入墙。
我很快写了Twitter等价物。我一定在这里遗漏了什么???
正确的方法是什么?
似乎所有我需要的是: FaceBookClient(appID,appSecret) 然后就是 FaceBookClient.Put(消息) ???
澄清补充道:使用C#facebook sdk winform应用程序 我不得不更改他们的FacebookLoginDialog.cs以使用folling URL:
在WebBrowser.DocumentText
中返回一个accesskey如果我再打电话:
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)必须使用活动访问令牌来查询有关当前用户的信息。
我猜这是同样的例外
答案 0 :(得分:3)
这是我找到的。
从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 您可以输入访问令牌并单击“调试”,它应列出您的applicationID,UserID,对于“expires”,它应该说“never”。
获得此访问令牌后,您只需编写如下代码:
var fb = new FacebookClient(AccessToken);
dynamic parameters = new ExpandoObject();
parameters.message = FacebookString;
dynamic result = fb.Post("me/feed", parameters);
var id = result.id;
将信息发布到Facebook!
答案 1 :(得分:0)
除了publish_stream之外,您还应该请求offline_access。获得永不过期的令牌后,将其存储在您的应用中。