0

我希望能夠從我的Android應用程序的背景中無縫地發佈到用戶Facebook供稿。用戶完全知道他們正在發佈的內容,但該帖子將在相當長的上傳過程之後完成,因此不應讓用戶等待。我正在使用Android Facebook SDK v4.1.2。從背景分享到Facebook - Android - Facebook SDK v4.x

我看到,我需要從事先向用戶請求的"publish_actions"權限:

https://developers.facebook.com/docs/facebook-login/permissions/v2.3#reference-publish_actions

我可以使用LoginManager來獲得訪問令牌:

https://developers.facebook.com/docs/facebook-login/android/v2.3#access_profile

我那麼不知道如何在不使用ShareDialog的情況下共享用戶Feed的鏈接:

https://developers.facebook.com/docs/sharing/android

SO question建議使用Request對象3.x版,這相當於GraphRequest對象4.x版:

https://developers.facebook.com/docs/reference/android/current/class/GraphRequest/

,但我不知道如何建立正確的GraphRequest。我想我需要發佈一條消息"/me/feed"

https://developers.facebook.com/docs/graph-api/reference/v2.3/user/feed

誰能告訴我如何做到這一點?

回答

1

如果您不想自己構建params包,則應該使用ShareApi類。

構建ShareLinkContent,你通常會:

ShareLinkContent content = new ShareLinkContent.Builder() 
    .setContentUrl(Uri.parse("https://your.url.com")) 
    .build(); 

然後調用ShareApi:

ShareApi.share(content, new FacebookCallback<Sharer.Result>() {...}); 
2

在寫這個問題時,我發現了我自己的解決方案,通過拖放文檔和示例。我需要發佈一條消息"/me/feed"

https://developers.facebook.com/docs/graph-api/reference/v2.3/user/feed

Bundle params = new Bundle(); 
params.putString("link", link); 

GraphRequest request = new GraphRequest(AccessToken.getCurrentAccessToken(), 
    "/me/feed", params, HttpMethod.POST, 
    new GraphRequest.Callback() { 
     @Override 
     public void onCompleted(GraphResponse graphResponse) { 

     } 
    }); 
request.executeAndWait(); 

獲得"publish_actions"許可後。