2017-04-15 12 views
0

facebook sdk4のpublish_actionsパーミッションを取得できません+問題に直面しています。いずれかが解決策を持っている場合は、ここに投稿してください。私は古いバージョンのソリューションは誰もが見ることができますが、sdk4 +のソリューションは見つけられませんでした。投稿のパーミッションを得る方法publish_actions in facebook sdk 4+ with perfect example

 LoginManager loginManager = LoginManager.getInstance(); 
     loginManager.logInWithPublishPermissions(this, permissionNeeds); 
     Log.e("publish_action", "asking_for_permission"); 

     LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() 
     { 
      @Override 
      public void onSuccess(LoginResult loginResult) 
      { 
       if (AccessToken.getCurrentAccessToken().getPermissions().contains("publish_actions")) 
       { 

        Log.e("publish_action", "permission_activated"); 
        Bitmap image = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher); 
        try { 
         Log.e("publish_action", "permission_activated_inside_try"); 
         SharePhoto photo = new SharePhoto.Builder() 
           .setBitmap(image) 
           .setCaption("A post from Android code") 
           .build(); 

         SharePhotoContent content = new SharePhotoContent.Builder() 
           .addPhoto(photo) 
           .addPhoto(photo) 
           .addPhoto(photo) 
           .build(); 


         ShareApi.share(content, new FacebookCallback<Sharer.Result>() { 
          @Override 
          public void onSuccess(Sharer.Result result) { 
           Log.e("successfull", "photo_uploaded"); 
          } 

          @Override 
          public void onCancel() { 
           Log.e("canceled", "photo_uploaded_cancled"); 
          } 

          @Override 
          public void onError(FacebookException error) { 
           Log.e("error", "photo_upload_error"); 
          } 
         }); 

        } catch (Exception e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
        } 
       } 

      } 

      @Override 
      public void onCancel() { 
       System.out.println("onCancel"); 
       Log.e("publish_action", "cancel"); 
      } 

      @Override 
      public void onError(FacebookException exception) { 
       Log.e("publish_action", "error = " + exception.getMessage()); 
       System.out.println("onError"); 
      } 
     }); 

答えて

0

私はこのlinkあなたは、これはそれが私のために役立ちましたfacebokkするpublish_actions許可のための完全なデモで、このURLを試す必要がありました。

+0

これは私のために働く –

1

私は、ユーザーがあなたがそれを使用することはできないかもしれませんが、あなたのコードを実行し続けますので、解決策は、あなたがlogInWithPublishPermissionsを(使用した後に返す必要が

if (!AccessToken.getCurrentAccessToken().getPermissions().contains("PERMISSION_THAT_YOU_NEED")) { 
     LoginManager.getInstance().logInWithPublishPermissions((Activity) viewInterface.getContext(), Arrays.asList("PERMISSION_THAT_YOU_NEED")); 
     return; 

)だった、同じ問題を抱えていました。ユーザーがこのアクセス権にアクセスすると、コードは次回に正常に完了します。

これを試してみてください。

関連する問題