2015-07-30 5 views
1

Я могу войти в систему с помощью LoginManager в Android-приложении Android Facebook и получить токен доступа.токен доступа к Facebook с Android SDK

Чем я получить список страниц, для которых он является админ, и я могу получить токен строку доступа для страницы, выбранной пользователем,

Моя цель состоит в том, чтобы позволить пользователю размещать в качестве страницы, но Я не могу создать для этого действительный объект AccessToken.

Пытаюсь:

public void postMessage(String message, String pageId, FragmentActivity activity, GraphRequest.Callback callback, Context context) { 
    Bundle params = new Bundle(); 
    params.putString("message", message); 

    AccessToken accessToken = AccessToken.getCurrentAccessToken(); 
    if (!pageId.equals("me")) { 
     accessToken = new AccessToken(SettingsManager.getInstance(context).getFacebookAccessTokenPageId(), context.getString(R.string.app_id), pageId, null, null, null, null, null); 
    } 


    GraphRequest request = new GraphRequest(accessToken, pageId + "/feed", params, 
      HttpMethod.POST, callback); 

    request.executeAsync(); 

} 

Но когда я отправить почту, я получаю сообщение об ошибке. Если я использую currentAccessToken, не пытаясь заставить токен доступа к странице, я могу опубликовать сообщение на странице, но как обычный пользователь, а не как страницу.

Кто-нибудь знает, как создать токен доступа, чтобы опубликовать его в качестве страницы?

Большое спасибо Emanuele

+0

Что ошибка вы получаете? Вы действительно запросили разрешение 'publish_page', прежде чем запрашивать'/me/accounts'? – Tobi

+0

Здравствуйте, нет, я попросил publish_actions, но не publish_page .... Я дам попробовать –

+1

Здравствуйте, это было решение. Получение разрешения «publish_page» сделало трюк !!! большое спасибо –

ответ

0

вы можете получить этот маркер доступа от Graph API исследователя, ссылка приведена ниже ... https://developers.facebook.com/tools/explorer/

войти с учетной записью на страницу, которую вы админ и получить доступ токена отсюда и поместить его в свой код.

или инициализировать новый маркер доступа в коде с помощью этого маркера ..

AccessToken token = new AccessToken("YOUR_TOKEN_HERE_FROM_EXPLORERE", 
       AccessToken.getCurrentAccessToken().getUserId(), 
       AccessToken.getCurrentAccessToken().getUserId(), Arrays.asList("publish_actions", "manage_pages", "publish_pages"), 
       null, AccessTokenSource.FACEBOOK_APPLICATION_SERVICE, 
       AccessToken.getCurrentAccessToken().getExpires(), AccessToken.getCurrentAccessToken().getLastRefresh()); 
Смежные вопросы