我想分享与Facebook的消息。这里是代码:FBSDKLog缺少权限
RACSignal *sign = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
if([[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"]){
NSLog(@"1 blck");
NSLog(@"curr tok? %@", [FBSDKAccessToken currentAccessToken]);
[subscriber sendNext:@YES];
[subscriber sendCompleted];
} else {
NSLog(@"2 blck");
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login logOut];
login.loginBehavior = FBSDKLoginBehaviorWeb;
[login logInWithPublishPermissions:@[@"publish_actions"] fromViewController:APP.window.rootViewController handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
NSLog(@"log passed by");
self.isExecuting = YES;
if (error) {
NSError *err = [NSError errorWithDomain:@"ru.myServer.fb" code:-3 userInfo:@{NSLocalizedDescriptionKey:error.localizedDescription}];
[subscriber sendError:err];
} else if (result.isCancelled) {
NSError *err = [NSError errorWithDomain:@"ru.myServer.fb" code:-4 userInfo:@{NSLocalizedDescriptionKey:@"Недоступно"}];
[subscriber sendError:err];
} else {
NSString *strToken = result.token.tokenString;
NSString *strUserId = result.token.userID;
NSDictionary *dctProps = @{@"token":strToken, @"user_id":strUserId};
[subscriber sendNext:dctProps];
[subscriber sendCompleted];
}
}];
}
它很简单,即使你不熟悉反应可可。
出于某种原因,该代码的作品(发布消息)的一个账户,之前已经获得授权,但是当我尝试另一个ACC做分享新闻,它完整的块,但发送错误
FBSDKLog:警告:访问令牌丢失publish_actions权限
。显然,没有消息可以分享。
这是为什么发生?
publish_actions不是读取权限。 – CBroe
我对文档非常熟悉,谢谢。您所说的并不会改变它不是_read_权限的事实,因此应该以不同的方式提出要求 - 请参阅https://developers.facebook.com/docs/facebook-login/ios/permissions#permissions -Login此外,[最佳做法](https://developers.facebook.com/docs/facebook-login/best-practices)由FB说不让问权限的应用程序总结如初始用户登录publish_actions,但只有当第一次实际需要权限时(即用户主动点击一个触发共享的按钮) – CBroe
@CBroe好吧,我错了......我不知道为什么。将更新答案并删除我的“几乎粗鲁”的评论;) –