Facebook的C#SDK入门
我想编写一个控制台应用程序,每天早上自动将信息发布到我的墙上。
我已经注册了Facebook开发者并拥有AppID和App Secret
我一直在尝试使用C#facebook SDK并查看几个示例。
似乎这些示例获得用户令牌 - 但必须使用Windows窗体中的浏览器。 这是一个自动化的过程 - 所以我不想让用户在场。
我也使用应用程序标记创建了一些示例 - 但它似乎无法写入墙。
我很快写了Twitter的等价物。 我必须在这里失去一些东西?
什么是正确的方式来进行?
似乎我应该需要的是:FaceBookClient(appID,appSecret),然后只是FaceBookClient.Put(消息)???
澄清补充说:
玩C#facebook sdk winform应用程序我不得不改变他们的FacebookLoginDialog.cs来使用folling 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中返回一个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)必须使用活动访问令牌来查询有关当前用户的信息。
我想这是同一个例外
这是我发现的。
从http://facebooksdk.codeplex.com/下载facebook C#sdk源代码和示例。
解压缩代码并将其加载到Visual Studio中,名为CS-WinForms的Facebook C#SDK示例。
在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!
除了publish_stream之外,您还应该请求offline_access。 一旦你有永不过期的令牌,将它存储在你的应用程序中。
链接地址: http://www.djcxy.com/p/10285.html