Android アプリケーションが 1 つあり、アプリから Facebook のファン ページに動画をアップロードする必要があります。
画像は公開できますが、動画をアップロードできません。{Response: responseCode: 400, graphObject : null, error: {HttpStatus: 400, errorCode: 352, errorType: OAuthException, errorMessage: (#352) 申し訳ありませんが、選択したビデオ ファイルはフォーマットされています。 }, isFromCache:false}
3gp、mp4 などの別の形式でアップロードしようとしましたが、うまくいきません!
画像をアップロードするために私がしたこと
Bitmap photo = BitmapFactory.decodeResource(getResources(),R.drawable.in);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
photo.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
final Session sessionfb = Session.getActiveSession();
List<String> permissions = sessionfb.getPermissions();
if (!permissions.contains("publish_actions")) {
Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(
MainActivity.this, Arrays.asList("publish_actions"))
;
sessionfb.requestNewPublishPermissions(newPermissionsRequest);
}
Bundle parameters = new Bundle();
parameters.putByteArray("source", byteArray);
new Request(sessionfb, "me/photos", parameters, HttpMethod.POST,
new Request.Callback() {
public void onCompleted(Response response) {
progressDialog.dismiss();
Log.e("facebook post response",
response.toString());
}
}).executeAsync();
このコードは、画像をアップロードするために完全に機能します。
動画をアップロードするために私がしたこと
Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.testfile);
InputStream iStream = getContentResolver().openInputStream(uri);
byte[] inputData = getBytes(iStream);
final Session sessionfb = Session.getActiveSession();
List<String> permissions = sessionfb.getPermissions();
if (!permissions.contains("publish_actions")) {
Session.NewPermissionsRequest newPermissionsRequest = new Session.NewPermissionsRequest(
MainActivity.this, Arrays.asList("publish_actions"));
sessionfb.requestNewPublishPermissions(newPermissionsRequest);
}
Bundle parameters = new Bundle();
parameters.putByteArray("source", inputData);
new Request(sessionfb, "me/videos", parameters, HttpMethod.POST,
new Request.Callback() {
public void onCompleted(Response response) {
progressDialog.dismiss();
Log.e("facebook post response",
response.toString());
}
}).executeAsync();
私は何かが欠けていますか?
「申し訳ありませんが、選択したビデオ ファイルはサポートされていない形式です。」