android facebook api 4.1 - 发布游戏成就

时间:2015-05-28 13:49:17

标签: android facebook-graph-api

我想将Android游戏中的成就发布到用户的Facebook墙上。 我正在使用facebook api 4.1,经过数小时的试验和错误仍然遇到麻烦。

我在布局中显示了一个ShareButton:

 <com.facebook.share.widget.ShareButton
        android:id="@+id/shareButton"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_gravity="center_vertical"
        android:visibility="visible" />

然后我在按钮上注册onClickListener:

  ShareButton shareButton = (ShareButton) findViewById(R.id.shareButton);
  shareButton.setOnClickListener(this);

执行onClick时执行以下代码:

 // Create an object
    ShareOpenGraphObject object = new ShareOpenGraphObject.Builder()
            .putString("og:type", "game.achievement")
            //.putString("eaustria_net:achievement", "http://samples.ogp.me/161147604019932")
            .putString("og:title", "Hole dir die Frogsmasher app unter: https://play.google.com/store/apps/details?id=eaustria.net.findthebug")
            .putInt("game:points", highscore)
            .build();

    // Create an action
    ShareOpenGraphAction action = new ShareOpenGraphAction.Builder()
            .setActionType("games.achieves")
            .putObject("achievement", object)
            .build();
    // Create the content
    ShareOpenGraphContent content = new ShareOpenGraphContent.Builder()
            .setAction(action)
            .setPreviewPropertyName("achievement")
            //.setPreviewPropertyName("achieves")
            .build();
    ShareDialog shareDialog = new ShareDialog(this);

    shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
        @Override
        public void onSuccess(Sharer.Result result) {
            Log.d(TAG, "sharedialog onSuccess");
        }

        @Override
        public void onCancel() {
            Log.d(TAG, "sharedialog onCancel");
        }

        @Override
        public void onError(FacebookException e) {
            Log.d(TAG, "sharedialog exception: " + e.getLocalizedMessage());
        }
    });
    shareDialog.show(content);

点击共享按钮后,fb会显示很短的时间并再次关闭。 Log cat说:

  

sharedialog exception:无法为用户生成预览。

我认为这与动作标签相对应。但我不知道如何改变这一点。我在fb上使用以下网址创建了一个开放图表操作:https://graph.facebook.com/me/games.achieves?

在manifest.xml中我放了app_id:

`<string name="facebook_app_id">827293344022992</string>`

我错的任何想法?

0 个答案:

没有答案