2013-07-09 2 views
4

дорогие друзья, Я разрабатываю приложение с интеграцией Facebook на Android с помощью SDK для Facebook. Мое приложение должно просто иметь возможность опубликовать ссылку. Я использую этот код:Ошибка # 200 Facebook SDK Android

this.req = new Request(session, "me/feed", b, HttpMethod.POST, 
        callback); 

      RequestAsyncTask sendRequest = new RequestAsyncTask(req); 
      sendRequest.execute(); 

Использование этого разрешения:

public static final List<String> PERMISSIONS = Arrays 
      .asList("publish_actions"); 

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

(#200) The user hasn't authorized the application to perform this action 

Не могли бы вы помочь мне? Или просто дать подсказку?

+0

Попробуйте добавить разрешение 'status_update'. –

+0

уже пробовал;) –

ответ

0

Я думаю, что ваш KeyHash, который вы добавили на свою учетную запись Facebook, позволяет вам поделиться ссылкой. Чтобы иметь возможность размещать какие-либо материалы на стене пользователя, вы должны уважать эту facebook «best practive»: вот мой код производства, который отлично работает:

private void publishStory(String hash, String title, String user) { 

    Session session = Session.getActiveSession(); 

    if (session != null){ 
     // Check for publish permissions  
     List<String> permissions = session.getPermissions(); 
     if (!isSubsetOf(PERMISSIONS, permissions)) { 
      pendingPublishReauthorization = true; 
      Session.NewPermissionsRequest newPermissionsRequest = new Session 
        .NewPermissionsRequest(getActivity(), PERMISSIONS); 
      session.requestNewPublishPermissions(newPermissionsRequest); 
      return; 
     } 
     Bundle postParams = new Bundle(); 
     postParams.putString("name", title); 
     postParams.putString("caption", "By Recommend Android"); 
     postParams.putString("description", user+" "+"STRONGLY recommends"+" "+title); 
     postParams.putString("link", "http://re.co/"+hash); 
     postParams.putString("picture", "http://re.co/assets/img/useful-exp.png"); 

     Request.Callback callback= new Request.Callback() { 
      public void onCompleted(Response response) { 
       JSONObject graphResponse = response 
         .getGraphObject() 
         .getInnerJSONObject(); 
       String postId = null; 
       try { 
        postId = graphResponse.getString("id"); 
       } catch (JSONException e) { 
        Log.i(TAG, 
          "JSON error "+ e.getMessage()); 
       } 
       FacebookRequestError error = response.getError(); 
       if (error != null) { 
        debug.print("erreur"); 
       } else { 
        debug.print("erreur2"); 
       } 
      } 
     }; 
     Request request = new Request(session, "me/feed", postParams, 
       HttpMethod.POST, callback); 

     RequestAsyncTask task = new RequestAsyncTask(request); 
     task.execute(); 
    } 
} 
private boolean isSubsetOf(Collection<String> subset, Collection<String> superset) { 
    for (String string : subset) { 
     if (!superset.contains(string)) { 
      return false; 
     } 
    } 
    return true; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^