Пользователь не авторизовал приложение для выполнения этого действия - PullRequest
4 голосов
/ 03 января 2012

Я занимаюсь разработкой простой Java-программы для автоматической публикации (статей) на своей странице в Facebook.Я создал приложение и получил access_token, используя url: https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=APP_ID&client_secret=CLIENR_SECRET. Я использую этот Java-код для публикации на веселой странице:

String url = "https://graph.facebook.com/" + PAGE_ID + "/feed"
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("access_token", accessToken));
nvps.add(new BasicNameValuePair("message", item.getTitle()));
HttpClient client = new DefaultHttpClient(params);
HttpPost httpost = new HttpPost(url);
httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
HttpResponse response = client.execute(httpost);
HttpEntity entity = response.getEntity();

Я получил эту ошибку:

{
"error": {
      "message": "(#200) The user hasn't authorized the application to perform this action",
      "type": "OAuthException"
   }
}

Как я могу дать своему приложению разрешение на публикацию на моей веселой странице?заранее спасибо

по рекомендации

Ответы [ 4 ]

15 голосов
/ 04 января 2012

Ух ты, я вижу, этот же вопрос задают, по крайней мере, один раз в день.

Вы захотите запросить manage_pages и publish_stream.Как только администратор страницы аутентифицируется, запросите me/accounts и извлеките токен доступа к странице из этого списка.Используя токен доступа к этой странице, вы можете публиковать на me/feed.

2 голосов
/ 15 мая 2012

просто, вам просто нужно спросить разрешения .. вот и все ..

String[] permissions = { "offline_access", "publish_stream", "user_photos", "publish_checkins","photo_upload" };
mFacebook.authorize(MainActivity.this, permissions,
            new LoginDialogListener());
0 голосов
/ 12 октября 2014

Facebook изменил разрешение publish_stream на publish_actions. Поэтому вам необходимо применить разрешения publish_actions и manage_pages.

0 голосов
/ 04 января 2012

Вы используете приложение access_token, в то время как вы должны использовать access_token для пользователя или страницы.

  • Пользовательский access_token присутствует в signed_request (в файле cookie или передан на холст приложения).
  • Страница access_token доступна в accounts подключении user после того, как пользователь предоставил manage_pages разрешение на ваше приложение.

Обновление:
Для публикации в качестве администратора вам понадобится access_token пользователя.
Для публикации страницы вам понадобится страница access_token

...