0

現在、次を使用して公開ページの壁に投稿できます。

JSONObject json = new JSONObject();
json.put("message", "I'm on your wall");



Request req = Request.newPostRequest(getSession(), "PowerCardSoftware/feed", GraphObject.Factory.create(json), new Callback() {
        @Override
        public void onCompleted(Response response) {
            if(response.getError() != null)
                Log.e("FRAGACTIVITY", response.getError().toString());
            Toast.makeText(getBaseContext(), "I hacked your facebook!", Toast.LENGTH_SHORT).show();
        }
    });
    Request.executeBatchAsync(req);

ユーザーが撮った写真をパブリックウォールにも投稿したいと思います。JSONObject の代わりに Bundle を使用し、次の各行を使用してみました。

ByteArrayOutputStream baos = new ByteArrayOutputStream();
postPhoto.compress(CompressFormat.JPEG, 100, baos);
params.putByteArray("picture", baos.toByteArray());
params.putByteArray("source", baos.toByteArray());

どちらも次のようなエラーが表示されます-errorMessage:(#100)画像のURLが適切にフォーマットされていません

Facebook SDKの非推奨の関数/オブジェクトを使用せずに、他の人のFacebookウォールに写真を投稿する方法を知っている人はいますか?

4

3 に答える 3

2

これは、電話にローカルに保存されている写真をアップロードするための私のコードです:

        Request request6 = Request.newUploadPhotoRequest(
                session,
                ((BitmapDrawable) getResources().getDrawable(
                        R.drawable.picture)).getBitmap(), callback6);
        RequestAsyncTask task6 = new RequestAsyncTask(request6);
        task6.execute();

これは、自分の壁にアップロードすることです。別の受信者を選択するオプションがない理由は、2 月に他のユーザーのウォールへの投稿を無効にする重大な変更があるためです。

以前の回答を参照してください

編集:

写真とメッセージとともに場所の壁に表示される写真をアップロードする最良の方法は何ですか?

これを試して、これが機能するかどうかを確認できますか?

    Bundle parameters = new Bundle();
    parameters.putParcelable("picture", YOUR_BITMAP_HERE);
    parameters.putString("message", "my message for the page");

    return new Request(session, "PowerCardSoftware/feed", parameters, HttpMethod.POST, callback);

newUploadPhotoRequest() を使用してメッセージを追加できますか?

いいえ、写真にメッセージを追加する場合は、 を使用しませんnewUploadPhotoRequest。ソースを掘り下げると、それは単に a のラッパーなRequestので、メソッドと同じことを行いますが、必要なメッセージで追加のパラメーター を追加しmessageて実行します。個人的には確認していませんが、動作するはずです。そうでない場合はお知らせください。

于 2013-01-02T22:05:30.183 に答える
0

facebookSDK プロジェクトの /tests フォルダーを確認し、キーワード newPostRequest を検索できます。サンプルコードは以下の通り

GraphObject statusUpdate = GraphObject.Factory.create();
                String message = "message";
                statusUpdate.setProperty("message", message);
                statusUpdate.setProperty("link", "http://stackoverflow.com/questions/14129546/android-post-picture-to-facebook-public-page-wall#");
            Request request = Request.newPostRequest(Session.getActiveSession(), "me/feed", statusUpdate, new Callback() {

                @Override
                public void onCompleted(Response response) {

                }
            });
            request.executeAsync();
于 2014-04-16T04:48:35.277 に答える