2017-04-15 38 views
0

我無法獲得facebook sdk4 +的publish_actions許可我面臨問題,我發現沒有適當的例子可用。如果有任何人有解決方案在這裏發佈。我發現每個人都顯示舊版本的解決方案,但沒有找到sdk4 +的解決方案。如何獲得發佈權限publish_actions在facebook sdk 4+完美的例子

 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你必須嘗試這個網址這是publish_actions權限facebokk這對我有幫助的完美演示。

+0

這適用於我 –

1

我有同樣的問題,解決辦法是

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

你需要使用logInWithPublishPermissions()後返回,因爲用戶可能不允許你使用它,但你的代碼將繼續運行。如果用戶提供對此權限的訪問權限,則代碼將在下次成功完成。

試試這個,希望對你有幫助。

相關問題