【发布时间】:2016-05-24 12:12:07
【问题描述】:
我想从我的 IOS 应用程序向 Facebook 制作实时视频流。我有两个 facebook 帐户:第一个 - 使用已注册的 iOS 应用程序,第二个帐户 - 仅用于测试。如果我使用我的第一个帐户(在我的 iOS 应用程序中)登录 - 我将获得流式传输所需的 rtmp://rtmp-api.facebook.com:80/rtmp URL 和密钥(一切如 FB 文档中所述:https://developers.facebook.com/docs/videos/live-video-api)。但如果我使用第二个帐户登录,我会收到此错误:
com.facebook.sdk:FBSDKGraphRequestErrorParsedJSONResponseKey={
body = {
error = {
code = 100;
"fbtrace_id" = Ed9BmMChIsn;
message = "(#100) No permission to perform current operation.";
type = OAuthException;
};
};
code = 400;
}, com.facebook.sdk:FBSDKGraphRequestErrorHTTPStatusCodeKey=400,
我的直播代码:
- (void)enableFacebookLiveStreamingWithCompletionHandler:(void(^)(NSString* facebookStreamURL, NSString* facebookStreamKey, NSError* error))completionHandler;
{
dispatch_async(dispatch_get_main_queue(), ^{
if ([[FBSDKAccessToken currentAccessToken] hasGranted:permissionPublishActions])
{
NSString* liveVideosRequestPath = [NSString stringWithFormat:@"/%@/live_videos",[FBSDKAccessToken currentAccessToken].userID];
FBSDKGraphRequest* request = [[FBSDKGraphRequest alloc] initWithGraphPath:liveVideosRequestPath parameters:nil HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
NSLog(@"%@",[FBSDKAccessToken currentAccessToken].permissions);
if (error)
{
if (completionHandler)
completionHandler(@"",@"",error);
}
else
{
if (completionHandler)
completionHandler(@"rtmp://rtmp-api.facebook.com:80/rtmp/",[[result objectForKey:@"stream_url"] lastPathComponent],nil);
}
}];
}
});
}
P.S// 非常有趣的是,即使我在这里包含了所有权限:https://developers.facebook.com/tools/explorer,对我来说仍然拒绝访问第二个测试帐户(应用程序未注册)!
请帮帮我。
【问题讨论】:
-
我的权限:“publish_actions”、“contact_email”、“user_videos”、“email”、“public_profile”、“user_friends”
-
如果其他帐户在应用中没有角色,那么您需要先获得 Facebook 审核的权限,然后才能向该用户请求权限。
-
同样的问题,找到解决方案了吗?我已经从 Facebook 批准了上述所有权限,但仍然出现问题。