我有这段代码,登录Facebook后,我想通过 Facebook Android SDK v4.13.1 将选定的视频上传到Facebook,
问题:
响应看起来不错,但视频未在测试用户的时间轴中显示 .
代码:
public void shareVideoFB(String videoPath, final ProgressDialog pd) {
AccessToken accessToken = AccessToken.getCurrentAccessToken();
GraphRequest request = GraphRequest.newPostRequest(accessToken, "https://graph-video.facebook.com/me/videos", null, new GraphRequest.Callback() {
@Override
public void onCompleted(GraphResponse response) {
try {
if (pd.isShowing())
pd.dismiss();
} catch (Exception e) {
e.printStackTrace();
}
onFBShareVideoCompleted(response);
}
});
Bundle params = request.getParameters();
try {
byte[] data = readBytes(videoPath);
params.putByteArray("video.mp4", data);
String albumName = "testFBUpload";
params.putString("title", albumName);
params.putString("description", " #SomeTag");
request.setParameters(params);
request.executeAsync();
} catch (Exception e) {
e.printStackTrace();
}
}
回复1:
{Response: responseCode:200, graphObject:{"id":"10150481253673034", "url":"https:\/\/graph-video.facebook.com\/me\/videos"}, error:null}
回复2:
{Response: responseCode:200, graphObject:null, error:{HTTPStatus:-1,errorCode:-1,errorType:null, errorMessage:"could not construct request body"}}
编辑1
我创建了一个具有多个权限的新测试用户
-
public_profile
-
user_friends,
-
电子邮件,
-
user_about_me,
-
user_actions.video,
-
user_likes,
-
user_videos,
-
publish_pages,
-
publish_actions
并上传视频,但仍然得到与 Response 1 相同的响应 .
编辑2
我刚刚注意到,对于测试用户,响应与 Response 1 相同,并且具有完全相同的ID 10150481253673034
3 回答
注意:
我的解决方案仅适用于测试用户 . 要发布实际用户的视频 refer this 以进行提交 .
虽然 @Morales Batovski Answer帮助了我,但我想回答我自己的问题,因为没有答案完成,我发布了一个完整的工作解决方案:
创建测试用户:
创建具有权限的新测试用户(您可以排除一些不必要的权限):
public_profile
user_friends
email
,user_about_me
,user_actions.video
,user_likes
,user_videos
,publish_pages
,publish_actions
You will add these permissions here (Screenshot)
build.gradle:
MyAbstractFacebookActivity:
分享:
(此活动实现 MyAbstractFacebookActivity 并且需要来自intent的字符串 path 值,我的FB共享按钮侦听器是 onFacebookShareButtonClick() )
结果:
你有2个回复 .
响应1来自测试用户.i.e . 视频已成功共享 . - >所以你需要使用
Facebook developer console
提供的测试用户凭据登录facebook并检查时间表 . 如果您没有在时间轴中找到它,请在配置文件中查看它 . 你肯定会在那里找到它 .响应2来自另一个帐户 . - >失败是因为除非Facebook批准您的应用,否则它将不允许您使用除测试帐户之外的其他帐户共享视频 . 因此,当您的申请将从Facebook提交流程获得
publish_actions
的批准时,您可以使用不同的帐户进行测试 . 所以这个案子没问题 .请参阅https://developers.facebook.com/docs/opengraph/submission-process以了解提交过程 .
在GraphRequest的创建中,用
/me/videos
替换图形路径https://graph-video.facebook.com/me/videos
.来源:
Video Upload with Graph API
Graph API Reference: Video
您可以使用以下边缘发布视频:
/{user-id}/videos
/{event-id}/videos
/{page-id}/videos
/{group-id}/videos