我想编写一个控制台应用程序,每天早上自动将信息发布到我的墙上.
我已经注册了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);
Run Code Online (Sandbox Code Playgroud)
我得到了例外:
(OAuthException)必须使用活动访问令牌来查询有关当前用户的信息.
如果我将上面的代码更改为不使用该访问令牌 - 但使用appID和Appsecret:
FacebookClient myFacebookClient = new FacebookClient("APPID", "APPSECRET");
dynamic parameters = new ExpandoObject();
parameters.message = "Hello World!";
dynamic result = myFacebookClient.Post("me/feed", parameters);
Run Code Online (Sandbox Code Playgroud)
然后我得到了例外:
(OAuthException)必须使用活动访问令牌来查询有关当前用户的信息.
我想这是同样的例外
所以.我遇到了一个问题,投入数小时在互联网上搜索并没有多大帮助,认为SO总是一个不错的选择.我有一个facebook GraphAPI调用,以获取Facebook用户提供如下所示:
dynamic myFeed = await fb.GetTaskAsync(
("me/feed?fields=id,from {{id, name, picture{{url}} }},story,picture,link,name,description," +
"message,type,created_time,likes,comments")
.GraphAPICall(appsecret_proof));
Run Code Online (Sandbox Code Playgroud)
上面帮我回复一些最新的帖子,用户发布了一段时间说21或22个帖子但不是完整的用户帖子列表.我正在寻找一种使用facebook分页迭代用户提要的方法我最终找到了这个与facebook Offset分页一起使用的解决方案.
dynamic myFeed = await fb.GetTaskAsync(
("me/feed?fields=id,from {{id, name, picture{{url}} }},story,picture,link,name,description," +
"message,type,created_time,likes,comments")
.GraphAPICall(appsecret_proof), new {limit = "1000", offset = "21" });
Run Code Online (Sandbox Code Playgroud)
这让我向我想要实现的目标迈进了一步,但我认为这不是理想的做法,也不会返回所有用户帖子.有没有解决方法?请帮忙.
PS:我正在使用Facebook C#SDK.
更新1: 根据杰里米的回答.似乎facebook光标分页是我的要求唯一正确的选项.我想知道C#facebook sdk是否提供任何功能来迭代下一个边缘,这样我就可以在一个电话中获得所有的帖子,这有什么可能的解决方案吗?PS:我已经多次通过facebook API文档,我知道Nodes,Edges和Fields究竟是什么,唯一不幸的是facebook还不支持C#SDK,我无法在Facebook上找到合适的文档C#SDK也是.
我可以使用Web浏览器控件验证Facebook的桌面应用程序.但我想在没有浏览器的情况下登录.电子邮件和密码将通过Windows窗体提供.我搜索了很多,但没有发现任何内容.
很多人说这是不可能的,facebook不会允许隐私政策.但是像tweet deck或nimbuzz这样的应用程序正在这样做.所以我认为这是可能的.
我想使用Facebook的最新C#sdk.
我正在开发Facebook应用程序我正在提供用户使用C#SDK邀请他的朋友加入应用程序.如Facebook文档中所示
我的问题是当用户的朋友收到应用程序请求并单击接受 它没有显示时application permission request page.
我是否需要执行任何额外步骤以将用户重定向到application permission request page?
Facebook的"弃用脱机访问"文档(http://developers.facebook.com/docs/offline-access-deprecation/)声明如下:
*服务器端OAuth开发人员
如果access_token是从服务器端 OAuth调用生成的,则生成的access_token将具有更长的到期时间.如果在该用户仍然存在有效的access_token的情况下进行呼叫,则来自该第二次呼叫的返回的access_token可以是相同的或者可能已经改变,但是在任何一种情况下,到期时间都将被重置.同样,在同一天多次调用此选项将仅导致第一次调用延长到期时间.*
这似乎意味着服务器端OAuth 自动获得一个长期到期令牌.如果我在Facebook Developer高级对话框中启用"弃用脱机访问"设置,我确实会发现这种情况 - 令牌在60天后到期.但随着设置,令牌将在2小时后到期.
关于这个设置,我有点困惑:
题:
这个设置听起来像是一个"过渡/迁移"选项....如果我启用此选项,我将在6个月后获得60天代币吗?不使用"交换"端点?
为什么不自动将所有令牌设置为60天?
我刚刚"升级"到c#SDK的6.1.0,发现FacebookAuthClient已被删除.我检查了github上的提交日志,那里没有太多信息.
有谁知道你应该如何使用最新版本的SDK进行身份验证?
我将Facebook SDK更新到6.0.10,一些以前工作的代码不再起作用了.我曾经在用户的墙上发布使用下面的方法.
FacebookClient曾经使用的类AppId,并且AppSecret我没有为我的应用程序提供任何访问令牌.
string uId = "SomeUid";
FacebookClient fb = new FacebookClient(AppId,AppSecret );
string userFeedPath = String.Format("/{0}/feed", uId);
dynamic parameters = new ExpandoObject();
parameters.link = "Test@test";
parameters.message = "test";
try
{
dynamic result = fb.Post(userFeedPath, parameters);
}
catch(Exception ex)
{
}
Run Code Online (Sandbox Code Playgroud)
现在即使我试试这个,
FacebookClient fb = new FacebookClient();
fb.AppId = "1234...";
fb.AppSecret = "76e69e0c334995cecc8c....";
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
(OAuthException - #200)(#200)此API调用需要有效的app_id.
我该如何解决这个问题?
我在Facebook上有页面,我想在我的网站上显示从我的Feed /墙上的最新5个帖子.这该怎么做?我找到了这个解决方案......很容易
https://developers.facebook.com/docs/reference/plugins/like-box/
Run Code Online (Sandbox Code Playgroud)
有人指导我使用facebook api并自己做什么是最好的方法?
我使用php mysql来构建这个站点
我开始开发适用于Windows phone 8和Windows 8的应用程序,我正在创建一个可移植的类库,以便在两个项目中共享一些类.在这个PCL我想做一些Facebook操作,但当我尝试从Nuget添加包时,我收到以下错误:
无法安装包'Facebook 6.4.2'.您正在尝试将此软件包安装到以"portable-net45 + wp80 + win"为目标的项目中,但该软件包不包含任何与该框架兼容的程序集引用或内容文件.有关更多信息,请与软件包作者联系.
在Windows Phone 8和Windows 8的共享项目中使用Facebook SDK for .NET是否可行?
问候.