Facebook Open Graph API和ShareDialog

时间:2016-05-27 21:35:27

标签: android facebook facebook-graph-api

我想在facebook上分享用户使用我的应用程序玩游戏。而且我想表明他在玩谁(可标记的朋友)。 我添加了一个新故事" Play"与#34;游戏比赛"宾语。行动"玩"是自动生成的。 现在我想为用户创建一个共享对话框,所以他实际上可以在Facebook上分享它。不幸的是我的代码不起作用。但是,当我使用游戏匹配对象的示例url地址时,它渲染得很好,似乎工作正常。到底是怎么回事?你能解释一下问题是什么吗?这是我的代码。请查看标有注释" Way ##"的3行。当第一种方式#1被取消注释时,一切正常,但我想使用我刚刚创建的对象,所以我尝试使用方式#2,但是我得到的错误是"失败为用户生成预览"。

    ShareOpenGraphObject object = new ShareOpenGraphObject.Builder()
            .putString("og:type", "games.match")
            .putString("og:title", "Quick Draw Round")
            .putString("og:image", "https://s-static.ak.fbcdn.net/images/devsite/attachment_blank.png")
            .putString("games:players", "499827376")
            .putInt("games:score", 100)
            .putString("og:determiner", "a")
            .putString("fb:app_id", "224658110883993")
            .build();

    ShareOpenGraphAction action = new ShareOpenGraphAction.Builder()
            .setActionType("queuedroid-test:play")
            .putString("match", "http://samples.ogp.me/413385652011237") // Way #1
//          .putObject("match", object)                                  // Way #2
            .build();

    ShareOpenGraphContent content = new ShareOpenGraphContent.Builder()
            .setPreviewPropertyName("match")
            .setAction(action)
            .build();
    ShareDialog dlg = new ShareDialog(activity);
    dlg.registerCallback(mCallbackManager, new FacebookCallback<Sharer.Result>() {
        @Override
        public void onSuccess(Sharer.Result result) {
            Log.d(TAG, "onSuccess: SUCCESS");
        }

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

        @Override
        public void onError(FacebookException error) {
            Log.d(TAG, "onError: " + error.toString());
        }
    });
    dlg.show(content);

1 个答案:

答案 0 :(得分:0)

它的名称Space不包括在内。 第.putObject("match", object)行应更改为

.putObject("queuedroid-test:match", object)

其中queuedroid-test是https://developers.facebook.com/apps

上的应用名称空间