Не могу отправить ссылку на мою собственную стену - PullRequest
0 голосов
/ 29 января 2012

Я разрабатываю многопротокольный клиент (в настоящее время Twitter, Facebook и Google Reader) для Windows с использованием C # и хотел расширить его функции для отправки ссылок на 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) Указанный вами URL недействителен»

Но, по крайней мере, когда я читаю документы по API, это должен быть правильный URL-адрес, и я попробовал его также с моим идентификатором пользователя вместо «я» и без 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 ]

3 голосов
/ 01 февраля 2012

Проблема всегда была в том, что я был глупым - я случайно обменял параметры при вызове моего метода, поэтому текст записи был в свойстве ссылки, и наоборот.

Глупый я: (

2 голосов
/ 30 января 2012

Я думаю, что ваша проблема заключается в размещении URL-адреса в качестве ссылки. Убедитесь, что URL виден линтеру (https://developers.facebook.com/tools/lint).

Другое дело - попробовать поиграть с инструментом Graph API Explorer и посмотреть, сможете ли вы использовать его для публикации ссылки. Если это так, попробуйте изменить раскрывающееся приложение на приложение, с которым у вас возникли проблемы, и снова опубликуйте ссылку.

1 голос
/ 02 ноября 2012

В моем случае я писал "http://localhost:3000", а Facebook отклонил его. Я попытался с" www.google.com ", и он работает

0 голосов
/ 14 июня 2013

Ошибка, которую я получал, была, несмотря на то, что сам URL был действительным, для og: image устанавливалось значение //example.com/example.jpg и отсутствовало http: или https:. Я обвиняю Facebook в этом, что он не принял действительный URL, который может принять любой браузер, но отладчик определенно помог определить это и решил проблему.

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

...