无法使用新的Facebook sdk 4.1发布开放图形自定义故事

时间:2015-05-21 21:13:11

标签: android facebook-graph-api facebook-opengraph facebook-sdk-4.0 facebook-stream-story

我试图用Facebook新的ShareApi发布一个自定义的故事,但我不能让它工作,我不知道我做错了什么。

自定义故事很好用,已被Facebook批准,我目前在我的iOS应用程序中使用它。

首先我创建对象:

ShareOpenGraphObject object = new ShareOpenGraphObject.Builder()
                    .putString("og:type","clinpays:site")
                    .putString("og:title","MY_TITLE")
                    .putString("og:description","MY_DESCRIPTION!")
                    .putString("og:url",MY_URL)
                    .build();


    SharePhoto photo = new SharePhoto.Builder()
            .setBitmap(bizBitmap)
            .setUserGenerated(true)
            .build();

然后我创建了动作:

    ShareOpenGraphAction action = new ShareOpenGraphAction.Builder()
                    .setActionType("clinpays:checkin")
                    .putObject("clinpays:site", object)
                    .putPhoto("photo", photo)
                    .build();

创建内容:

    ShareOpenGraphContent content = new ShareOpenGraphContent.Builder()
            .setPreviewPropertyName("clinpays:site")
            .setAction(action)
            .build();

并使用shareapi:

    ShareApi.share(content,new FacebookCallback<Sharer.Result>() {
        @Override
        public void onSuccess(Sharer.Result result) {
            Log.d(Check.TAG, "Story posted! " + result);
        }

        @Override
        public void onCancel() {

            Log.d(Check.TAG, "canceled");

        }

        @Override
        public void onError(FacebookException e) {
            Log.d(Check.TAG, "error posting: "+e.getMessage() );

        }
    });

我进入控制台的所有内容都是:

error posting: Invalid parameter

1 个答案:

答案 0 :(得分:0)

您需要将名称空间从setPreviewPropertyName("clinpays:site")移除为setPreviewPropertyName("site"),并从该操作的putObject中删除名称空间。