Получение фотографий и альбомов из Facebook с помощью C # - PullRequest
0 голосов
/ 03 марта 2011

Я пытаюсь проанализировать и получить мои (мой личный аккаунт, а не мое приложение) альбомы из Facebook, используя Facebook C # SDK. Моя цель - получить 10-12 самых последних фотографий на моем аккаунте. Тем не менее, я понимаю, что сначала нужно взять альбомы.

Итак, я пробовал множество вещей и в итоге получил следующий URL, который возвращает 400 Bad Request:

https://graph.facebook.com/{my_user_id}/albums?access_token={my_access_token}

Токен был получен по телефону:

https://graph.facebook.com/oauth/access_token?client_id={0}&client_secret={1}&grant_type={2}&scope={3}

Есть идеи, почему я получу 400?

Ответы [ 2 ]

3 голосов
/ 06 марта 2011

При использовании grant_type = client_credentials вы запрашиваете токен доступа к приложению. Это позволит вам выполнять различные административные действия для вашего приложения. Смотрите приложение Войти в http://developers.facebook.com/docs/authentication/.

Однако, при использовании пользовательских частей Graph Api, вам необходимо выполнить вход в систему с помощью диалогового окна oAuth. Есть разные способы сделать это, например, с помощью Javascript SDK , который должен быть простым в использовании.

Я не нашел хорошего способа сделать это в автономном веб-приложении, используя Facebook C # SDK без Javascript SDK (это легко сделать в приложении Canvas с помощью атрибута CanvasAuthorize).

Вот пример того, как это сделать в приложении WinForms http://blog.prabir.me/post/Facebook-CSharp-SDK-Writing-your-first-Facebook-Application.aspx. Это может работать в приложении Asp.Net, если вы можете использовать элемент управления WebBrowser. Я пытался с WebClient, но не повезло.

Обновление

Глядя на пример здесь http://facebooksdk.codeplex.com/SourceControl/changeset/view/534da45e108f#Samples%2fCSMvcWebsite%2fControllers%2fHomeController.cs похоже, вы должны иметь возможность использовать атрибут FacebookAuthorize на отдельном сайте.

0 голосов
/ 03 марта 2011

Код ошибки 400 означает, что запрос был неправильно отформатирован.Убедитесь, что окончательный URL-адрес выглядит нормально, и попробуйте в браузере.

Запрос не может быть понят сервером из-за неправильного синтаксиса.Клиент НЕ ДОЛЖЕН повторять запрос без изменений.

Т.е. при попытке выполнить следующее https://graph.facebook.com/someuser/albums?access_token=1234 Вы бы предварительно получили следующее:

{
   "error": {
      "type": "OAuthException",
      "message": "Invalid OAuth access token."
   }
}

Если вы предоставите ОКТокен и реальный пользователь, результат, вероятно, будет выглядеть немного иначе, но в вашем случае вы получите 400, потому что с запросом что-то не так.

...