我尝试了数千种方法,但都没有效果。每次帖子都不会出现。我之前设法发布了文字,但图片永远不会有用......
try {
String response = facebook.request("me");
Bundle parameters = new Bundle();
String DIRECTORY_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + "/img/img.jpg";
Bitmap bitmap = BitmapFactory.decodeFile(DIRECTORY_PATH);
byte[] data = null;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
data = baos.toByteArray();
parameters.putString("message", "picture caption");
parameters.putByteArray("source", data); //I try "picture" too
String pageid = "152390368241461";
response = facebook.request(pageid + "/photos", parameters,
"POST");
Log.d("Tests", "got response: " + response);
if (response == null || response.equals("") ||
response.equals("false")) {
Log.v("Error", "Blank response");
}
showToast(getResources().getString(R.string.sucessharefc));
} catch(Exception e) {
e.printStackTrace();
}
答案 0 :(得分:1)
根据Graph API Page docs,您需要使用具有multipart/form-data
和publish_stream
权限的令牌进行manage_pages
POST。
Facebook Android SDK request()文档说明了您使用的request()
形式:
请注意,此辅助函数尚不支持二进制数据参数(例如图片)。
因此,您必须使用HTTP客户端库。
答案 1 :(得分:-1)
您正在使用Facebook SDK中的弃用API。下载最新版本here,并查看“入门指南”和各种教程。
要上传照片,您应该使用Request课程,尤其是Request.newUploadPhotoRequest方法。
答案 2 :(得分:-1)
Bitmap imaBitmap= BitmapFactory.decodeResource(this.getResources(),R.drawable.androidface);
byte[] data = null;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
imaBitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
data = baos.toByteArray();
Bundle params = new Bundle();
params.putString("message"," Facebook App Testing");
params.putByteArray("picture", data);
mAsyncRunner.request("1741449412743375/photos", params, "POST", new SampleUploadListener(), null);