Facebook Open Graph API and ShareDialog



我想在Facebook上分享用户使用我的应用程序玩游戏。我想展示他和谁一起玩(可标记的朋友)。我添加了一个新的故事"玩"与"游戏匹配"对象。动作"播放"是自动生成的。现在我想为用户创建一个共享对话框,以便他实际上可以在Facebook上共享它。不幸的是,我的代码不起作用。但是,当我使用游戏匹配对象的示例 url 地址时,它呈现良好并且似乎工作正常。这是怎么回事?你能给我解释一下问题是什么吗?这是我的代码。请查看标有注释"方式##"的 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);

它的名称不包括空间。应将行.putObject("match", object)更改为

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

其中队列机器人测试是您在 https://developers.facebook.com/apps 上的应用名称空间

最新更新