我已成功连接我的应用和Facebook SDK,我可以将照片发布到相册。
问题是,我的全局变量中有“活动图像网址”,我使用以下代码将其发布到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 App设置,还是我代码中的某些内容?
我希望将图片添加到相册中,但要在发布时发布在我的墙上。
TNX
答案 0 :(得分: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");
见线程: