我正在使用C#为Windows开发一个多协议客户端(目前是Twitter,Facebook和Google Reader),并希望扩展其功能以发送到Facebook的链接(目前我“只”有文本状态消息,评论和喜欢)。
所以我在这里写了这个非常小的方法:
public void PostLink(string text, string url)
{
if (string.IsNullOrEmpty(url))
{
PostTextStatus(text);
return;
}
dynamic parameters = new ExpandoObject();
parameters.message = text;
parameters.link = System.Web.HttpUtility.UrlEncode(url);
dynamic result = facebookClient.Post("me/links", parameters);
UpdateNewsFeed();
}
但是我从Facebook收到以下错误消息:“(OAuthException)(#1500)您提供的网址无效”
但至少当我阅读API文档时,这应该是正确的网址,我也尝试使用我的用户ID而不是“我”而没有使用UrlEncode - 到目前为止没有运气。
任何帮助表示赞赏:)
(使用最新稳定版本的Facebook C#SDK)
使用过的客户端由
启动 facebookClient = new FacebookClient(AccessToken);
dynamic result = (IDictionary<string, object>)facebookClient.Get("me");
if (result != null)
{
LoginSuccessfull = true;
}
}
使用
检索AccesToken及其权限 IDictionary<string, object> loginParameters = new Dictionary<string, object>
{
{ "response_type", "token" },
{ "appId", appId},
{ "secret", appSecret }
};
Uri redirectUri = new Uri("http://www.li-ghun.de/Nymphicus/");
loginUri = FacebookOAuthClient.GetLoginUrl(appId, null, _extendedPermissions, loginParameters);
我认为足够多的权限:
private string[] _extendedPermissions = new[] {
"user_activities",
"user_birthday",
"user_checkins",
"user_education_history",
"user_events",
"user_games_activity",
"user_groups",
"user_hometown",
"user_interests",
"user_likes",
"user_location",
"user_notes",
"user_online_presence",
"user_photo_video_tags",
"user_photos",
"user_questions",
"user_relationship_details",
"user_relationships",
"user_religion_politics",
"user_status",
"user_subscriptions",
"user_videos",
"user_website",
"user_work_history",
"friends_about_me",
"friends_activities",
"friends_birthday",
"friends_checkins",
"friends_education_history",
"friends_events",
"friends_games_activity",
"friends_groups",
"friends_hometown",
"friends_interests",
"friends_likes",
"friends_location",
"friends_notes",
"friends_online_presence",
"friends_photo_video_tags",
"friends_photos",
"friends_questions",
"friends_relationship_details",
"friends_relationships",
"friends_religion_politics",
"friends_status",
"friends_subscriptions",
"friends_videos",
"friends_website",
"friends_work_history",
"create_event",
"create_note",
"email",
"export_stream",
"manage_friendlists",
"manage_notifications",
"manage_pages",
"offline_access",
"photo_upload",
"publish_actions",
"publish_checkins",
"publish_stream",
"read_friendlists",
"read_insights",
"read_mailbox",
"read_requests",
"read_stream",
"rsvp_event",
"share_item",
"status_update",
"video_upload",
};
答案 0 :(得分:3)
问题一直都在我自己是愚蠢的 - 我在调用我的方法时意外地交换了参数,所以条目的文本在链接属性中,反之亦然。
愚蠢的我:(
答案 1 :(得分:2)
我认为您的问题在于将URL作为链接发布。确保linter(https://developers.facebook.com/tools/lint)可以看到该URL。
另一件事是尝试使用Graph API Explorer工具,看看是否可以使用它来发布链接。如果是,请尝试将应用程序下拉菜单更改为您遇到问题的应用程序,然后再次尝试发布该链接。
答案 2 :(得分:1)
在我的情况下,我发布了“http:// localhost:3000”并且facebook拒绝了它。我尝试使用“www.google.com”并且可以正常使用
答案 3 :(得分:0)
我得到的错误是,即使网址本身有效,og:图片也设置为//example.com/example.jpg
,但缺少http:
或https:
。我责备Facebook这个,因为不接受任何浏览器都会接受的有效URL,但调试器肯定帮助识别并解决了这个问题。