Graph APIを使用してFacebookに画像を投稿しようとしています。画像をバイト配列に変換して投稿しようとしましたが、失敗しました。壁に投稿されたテキストが表示されますが、画像は投稿されていません。何が悪いのかわかりません。
以下のSOの利用可能なソリューションをすでに確認しましたが、どれもうまくいきませんでした。
1)グラフ API を使用して、ドローアブル フォルダーから facebook に画像を投稿するにはどうすればよいですか?
2) drawable から facebook に画像を投稿できない
3) Android から Facebook にテキスト付きの画像を投稿する
4)グラフ API を使用して Facebook に Android の写真をアップロードしますか?
これが私が試しているコードです。
private void publishFeedDialog() {
Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(),
R.drawable.ic_launcher);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] bitMapData = stream.toByteArray();
final Bundle params = new Bundle();
params.putString("name", "Test FB Post.");
params.putString("method", "photos.upload");
params.putByteArray("picture", bitMapData);
//Tried below code but not working.
/*try {
String response = mFacebook.request("me/photos", params, "POST");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/
WebDialog feedDialog = (new WebDialog.FeedDialogBuilder(m_context,
Session.getActiveSession(), params)).setOnCompleteListener(
new OnCompleteListener() {
@Override
public void onComplete(Bundle values,
FacebookException error) {
if (error == null) {
// When the story is posted, echo the success
// and the post Id.
final String postId = values.getString("post_id");
if (postId != null) {
Toast.makeText(m_context,
"Posted story, id: " + postId,
Toast.LENGTH_SHORT).show();
finish();
} else {
// User clicked the Cancel button
Toast.makeText(m_context, "Publish cancelled",
Toast.LENGTH_SHORT).show();
}
} else if (error instanceof FacebookOperationCanceledException) {
// User clicked the "x" button
Toast.makeText(m_context, "Publish cancelled",
Toast.LENGTH_SHORT).show();
} else {
// Generic, ex: network error
Toast.makeText(getApplicationContext(),
"Error posting story", Toast.LENGTH_SHORT)
.show();
}
}
}).build();
feedDialog.show();
}
私を案内してください。どんな助けでも大歓迎です。
ありがとう