FacebookでSDカードから画像をアップロードしたいです。URL から Facebook に画像を投稿できますが、SD カードから画像を渡すと投稿されません。
代わりに画像をアップロードするための文字列を渡しbyteArray
ていますが、出力が得られません。誰でもこの問題を解決するのを手伝ってもらえますか?
私のコード:
byte[] data = null;
params.putString(Facebook.TOKEN, facebook.getAccessToken());
params.putString("link", "https://www.facebook.com/pages/My-Short-Sale-Score/242779072468511");
params.putByteArray("picture",data);
Facebook facebook = new Facebook("318633718220473");
mAsyncRunner = new AsyncFacebookRunner(facebook);
mAsyncRunner.request(null, params, "POST", new SampleUploadListener(), null);
facebook.dialog(this, "stream.publish", params,
new DialogListener() {
@Override
public void onComplete(Bundle values){}
@Override
public void onFacebookError(FacebookError error) {}
@Override
public void onError(DialogError e) {}
@Override
public void onCancel() {}
}
);
}
public class SampleUploadListener extends BaseRequestListener {
public void onComplete(final String response, final Object state) {
try {
// process the response here: (executed in background thread)
Log.d("Facebook-Example", "Response: " + response.toString());
JSONObject json = Util.parseJson(response);
final String src = json.getString("src");
// then post the processed result back to the UI thread
// if we do not do this, an runtime exception will be generated
// e.g. "CalledFromWrongThreadException: Only the original
// thread that created a view hierarchy can touch its views."
} catch (JSONException e) {
Log.w("Facebook-Example", "JSON Error in response");
} catch (FacebookError e) {
Log.w("Facebook-Example", "Facebook Error: " + e.getMessage());
}
}
@Override
public void onFacebookError(FacebookError e, Object state) {
}
}