我已经成功地将我的应用程序和 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;
现在,这里发生的事情是,我的照片被上传到默认相册(命名为 app 被命名),并且任何人都看不到它,即使我已经在 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 应用程序设置,还是我的代码中的某些内容?
我希望将图像添加到相册中,但要在发布时发布在我的墙上。
肿瘤坏死因子