アプリと 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