1

アプリと Facebook SDK を接続することができ、写真をアルバムに投稿できます。

問題は、グローバルに「アクティブな画像の URL」があり、次のコードを使用して Facebook に投稿することです。

Onclick...
case R.id.tab1_PublishFace:
         Bundle params = new Bundle();
         params.putString("method", "photos.upload");
         Bitmap bi = BitmapFactory.decodeFile(Globals.INSTANCE.activeSetting.f_image_path);
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         bi.compress(Bitmap.CompressFormat.JPEG, 100, baos);
         imgData = baos.toByteArray();
         params.putByteArray("picture", imgData);
         Globals.INSTANCE.mAsyncRunner.request(null, params, "POST",new SampleUploadListener(), null);
         break;

さて、ここで何が起こるかというと、私の写真はデフォルトのアルバム (アプリの名前と同じ名前) にアップロードされ、Facebook の設定で一部の人に見えるように手動で変更したにもかかわらず、誰にも見えません。それに加えて、Facebook の私の画像は自動的にアルバムに配置されるのではなく、承認を要求します。

これは、Facebook に接続し、トークンとセッション情報を SharedPreferences に保持するコードです。

 Globals.INSTANCE.facebook.authorize(getSherlockActivity(), new String[] {"publish_actions"}, new DialogListener() {
                    public void onFacebookError(FacebookError e) {
                        // TODO Auto-generated method stub
                        showToast("FacebookError");
                    }

                    public void onError(DialogError e) {
                        // TODO Auto-generated method stub
                        showToast("FacebookError");
                    }

                    public void onComplete(Bundle values) {
                        // TODO Auto-generated method stub
                        ImageView img = (ImageView) getSherlockActivity().findViewById(R.id.imageView1);
                        TextView txt = (TextView) getSherlockActivity().findViewById(R.id.textView1);
                        txt.setText("Log Out from Facebook");
                        txt.setTag(faceLoggedIn);
                        showToast("Succesfully Loged To FB. Click Again to Logout");
                        SharedPreferences.Editor editor = mPrefs.edit();
                        editor.putString("access_token", Globals.INSTANCE.facebook.getAccessToken());
                        editor.putLong("access_expires", Globals.INSTANCE.facebook.getAccessExpires());
                        editor.commit();
                    }

                    public void onCancel() {
                        // TODO Auto-generated method stub
                        showToast("Canceled");
                    }
                });

https://github.com/fbsamples/ios-android-wishlistの例を見ていますが、特別な権利が設定されていません。その例をコンパイルすると、写真が適切に公開され、承認がありません必要です。

私は何が欠けていますか、それはFacebookアプリの設定ですか、それとも私のコードですか?

画像をアルバムに追加したいのですが、投稿時に自分のウォールに公開したいです。

TNX

4

1 に答える 1

1

Facebook に写真をアップロードすると、「Wall Photos」というタイトルの特定のアルバムに投稿されます。

これはうまくいくはずです:

Bundle params = new Bundle();
params.putByteArray("source", imageBytes);
params.putString("message", "A wall picture");
facebook.request("me/feed", params, "POST");

それでもうまくいかない場合は、まずログインしているユーザーの「壁の写真」アルバム ID を取得してから、次のようにする必要があります。

Bundle params = new Bundle();
params.putByteArray("source", imageBytes);
params.putString("message", "A wall picture");
facebook.request("ALBUM_ID/photos", params, "POST");

スレッドを参照してください:

Androidから壁に写真を投稿する

于 2012-10-07T17:22:37.467 に答える