2

我試圖在玩家解鎖徽章時實現分享到Facebook的成就。在Facebook開發者控制檯中使用對象瀏覽器創建了一個對象。我製作了動作類型和對象類型,並製作了一個自定義故事。現在,我試圖將故事分享給Facebook。 Facebook提供的文件不足。即使facebook給出的示例代碼也使用v3.xAndroid:OpenGraph在Facebook上使用SDK 4.0共享的故事

下面給出了facebook給出的示例代碼。找不到任何好的文檔。 https://developers.facebook.com/docs/sharing/android具體ShareOpenGraphObject和ShareOpenGraphAction:

行動

Bundle params = new Bundle(); 
params.putString("badge", "http://samples.ogp.me/1114467558579559"); 
Request request = new Request(
    Session.getActiveSession(), 
    "me/enguru_app:unlocked", 
    params, 
    HttpMethod.POST 
); 
Response response = request.executeAndWait(); 
// handle the response 

回答

6

在最後想通了,我自己的問題。

這裏是解決方案:

ShareOpenGraphObject object = new ShareOpenGraphObject.Builder() 
      .putString("og:type", "enguru_app:badge") 
      .putString("og:title", "Unlocked Newbie Badge") 
      .putString("og:url","xxxx") 
      .putString("og:image","xxx") 
      .putString("game:points", "10") 
      .putString("fb:app_id", "xxx") 
      .putString("og:description", 
        "We are rocking. Come and Play with us").build(); 
    // Create an action 
    ShareOpenGraphAction action = new ShareOpenGraphAction.Builder() 
      .setActionType("enguru_app:unlocked") 
      .putObject("badge", object).build(); 
    // Create the content 
    ShareOpenGraphContent content = new ShareOpenGraphContent.Builder() 
      .setPreviewPropertyName("badge").setAction(action) 
      .build(); 

    ShareDialog.show(Profile.this, content); 

我希望這會幫助別人誰通過了同樣的問題去。

+1

如何做到這一點沒有ShareDialog? – erdomester

+0

除了「badge」和setPreviewPropertyName(...)以外,還有哪些其他類型? –

+0

它看起來像setPreviewPropertyName()是爲了指定您用於ShareOpenGraphAction.putObject()的鍵。一個動作可以在其上設置多個對象,因此看起來這可以讓您識別要在該帖子中使用的主要對象。 –

0

如果你正在尋找如何共享,而無需使用ShareDialog

ShareApi shareApi = new ShareApi(content); 
shareApi.share(new FacebookCallback<Sharer.Result>() { 
     @Override 
     public void onSuccess(Sharer.Result result) { 

     } 

     @Override 
     public void onCancel() { 

     } 

     @Override 
     public void onError(FacebookException error) { 

     } 
}); 

而且你可能要檢查shareApi.canShare()

相關問題