无法验证 Facebook publish_actions 权限
Trouble verifying Facebook publish_actions permission
我已成功登录 Facebook 并请求 publish_actions 许可。已授予权限,因为我可以很容易地在 https://www.facebook.com/settings?tab=applications
上验证,也可以通过调用
-(void) whatPermissionsDoIHave
{
[FBRequestConnection startWithGraphPath:@"/me/permissions"
completionHandler:^(
FBRequestConnection *connection,
NSDictionary* result,
NSError *error
) {
//do checks in here
}
}];
}
所以我确定我得到了许可。但是,每当需要分享时,我的权限检查 returns 为假。我现在将显示我的权限检查
+ (BOOL)hasWritePermissions
{
if (!FBSession.activeSession.isOpen) return NO;
NSLog(@"So the session is at least open");
return [FBSession.activeSession.permissions indexOfObject:@[@"publish_actions"]] != NSNotFound;
}
所以我还漏掉了什么吗?也许我应该在 AppDelegate 中做些什么?感谢您的任何见解。
现在我在 AppDelegate 中唯一的调用是
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
// attempt to extract a token from the url
return [FBAppCall handleOpenURL:url
sourceApplication:sourceApplication
fallbackHandler:^(FBAppCall *call) {
NSLog(@"In fallback handler");
}];
}
权限属性是一个字符串数组,但你在另一个数组上调用indexOfObject,这可能就是它找不到它的原因。试试这个:
return [FBSession.activeSession.permissions indexOfObject:@"publish_actions"] != NSNotFound;
我已成功登录 Facebook 并请求 publish_actions 许可。已授予权限,因为我可以很容易地在 https://www.facebook.com/settings?tab=applications
上验证,也可以通过调用
-(void) whatPermissionsDoIHave
{
[FBRequestConnection startWithGraphPath:@"/me/permissions"
completionHandler:^(
FBRequestConnection *connection,
NSDictionary* result,
NSError *error
) {
//do checks in here
}
}];
}
所以我确定我得到了许可。但是,每当需要分享时,我的权限检查 returns 为假。我现在将显示我的权限检查
+ (BOOL)hasWritePermissions
{
if (!FBSession.activeSession.isOpen) return NO;
NSLog(@"So the session is at least open");
return [FBSession.activeSession.permissions indexOfObject:@[@"publish_actions"]] != NSNotFound;
}
所以我还漏掉了什么吗?也许我应该在 AppDelegate 中做些什么?感谢您的任何见解。
现在我在 AppDelegate 中唯一的调用是
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
// attempt to extract a token from the url
return [FBAppCall handleOpenURL:url
sourceApplication:sourceApplication
fallbackHandler:^(FBAppCall *call) {
NSLog(@"In fallback handler");
}];
}
权限属性是一个字符串数组,但你在另一个数组上调用indexOfObject,这可能就是它找不到它的原因。试试这个:
return [FBSession.activeSession.permissions indexOfObject:@"publish_actions"] != NSNotFound;