8

私は Facebook SDK 3.0 にアップグレードしようとしていますが、最終的に Request.newStatusUpdateRequest() ですべてが機能するようになりました。ただし、私のアプリはリンクとともにテキストを共有/投稿します。私は次のことを試しました/調べました:

Request.newStatusUpdateRequest()

これには、バンドルのオプションや、リンクとアイコンを含めるその他の方法がないようです。

Request.newRestRequest()

REST が減価償却されているのを見たので、これをスキップしました。

new WebDialog.FeedDialogBuilder(_activity, session, params).build().show();

これは実際にはかなりうまく機能しますが、結果の投稿は Facebook アプリにリンクされていないようで、これが Facebook の洞察にどのように影響するかわかりません.

Request.newPostRequest()

私が読んだことから、この方法は適切な方法のようです。ただし、GraphObject をパラメーターの 1 つとして渡す場所がわかりません。

ユーザーのウォールにテキスト、リンク、画像を投稿/共有する適切な方法は何ですか? Request.newPostRequest() のようですので、そのためのコードを含めます。

Request request = Request.newPostRequest(session, "me/feed", ??graph_object??, new Request.Callback() {
    @Override
    public void onCompleted(Response response) {
        showPublishResult("message", response.getGraphObject(), response.getError());
    }
});
request.setParameters(params);
Request.executeBatchAsync(request);

しかし、GraphObject とは一体何なのでしょうか? graph_object はどこで取得できますか? GraphObject/OpenGraph/Graph API の FB から読めば読むほど、混乱します。

私が完全に間違った方向に向かっている場合は、教えてください。Request.newPostRequest がこれを行う適切な方法である場合は、GraphObject パラメータに関する詳細情報を教えてください。

4

3 に答える 3

15

最後に、以下を使用して、Facebook SDK 3.0 で必要なものをすべて取得することができました。

Bundle params = new Bundle();
params.putString("caption", "caption");
params.putString("message", "message");
params.putString("link", "link_url");
params.putString("picture", "picture_url");

Request request = new Request(Session.getActiveSession(), "me/feed", params, HttpMethod.POST);
request.setCallback(new Request.Callback() {
    @Override
    public void onCompleted(Response response) {
        if (response.getError() == null) {
            // Tell the user success!
        }
    }
});
request.executeAsync();
于 2013-06-11T01:24:13.740 に答える
4

私はこの方法を使用して行いました。これが役立つかどうかを確認してください。

public static void publishFeedDialog(final Activity current, final String title,
        final String caption, final String description, final String link,
        final String pictureUrl) {
    // start Facebook Login
    Session.openActiveSession(current, true, new Session.StatusCallback() {

        // callback when session changes state
        @Override
        public void call(Session session, SessionState state,
                Exception exception) {
            if (session.isOpened()) {
                Bundle params = new Bundle();
                params.putString("name", title);
                params.putString("caption", caption);
                params.putString("description", description);
                params.putString("link", link);
                params.putString("picture", pictureUrl);

                WebDialog feedDialog = (new WebDialog.FeedDialogBuilder(
                        current, Session.getActiveSession(), params))
                        .setOnCompleteListener(new OnCompleteListener() {

                            @Override
                            public void onComplete(Bundle values,
                                    FacebookException error) {
                                if (error == null) {
                                    // When the story is posted, echo the
                                    // success
                                    // and the post Id.
                                    final String postId = values
                                            .getString("post_id");
                                    if (postId != null) {
                                        ToastHelper.MakeShortText("Posted");
                                    } else {
                                        // User clicked the Cancel button
                                        ToastHelper
                                                .MakeShortText("Publish cancelled");
                                    }
                                } else if (error instanceof FacebookOperationCanceledException) {
                                    // User clicked the "x" button
                                    ToastHelper
                                            .MakeShortText("Publish cancelled");
                                } else {
                                    // Generic, ex: network error
                                    ToastHelper
                                            .MakeShortText("Error posting story");
                                }
                            }

                        }).build();
                feedDialog.show();
            }
        }
    });
于 2013-08-21T01:33:12.957 に答える
1

ページまたはリンクを共有するには

Bundle params = new Bundle();
params.putString("link", "link_url");


Request request = new Request(Session.getActiveSession(), "me/feed", params, HttpMethod.POST);
request.setCallback(new Request.Callback() {
    @Override
    public void onCompleted(Response response) {
        if (response.getError() == null) {
            // Tell the user success!
        }
    }
});
request.executeAsync();

投稿パラメータの詳細については、developer.facebook.com の me/feed を参照してください。

于 2013-12-05T13:33:34.800 に答える