无法发送链接到我自己的墙

时间:2012-01-29 11:01:07

标签: facebook facebook-c#-sdk

我正在使用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",
    };

4 个答案:

答案 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,但调试器肯定帮助识别并解决了这个问题。

https://developers.facebook.com/tools/lint