“[[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"]”总是return false
"[[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"]" always return false
我正在尝试验证我是否拥有 publish_actions
权限。总是假的。即使我请求并获得 publish_actions
并获得 succeeded=TRUE
,重新验证仍然 return false。
有什么想法吗?
bool bGranted_publish_actions=[[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"];
bool bGranted_user_photos=[[FBSDKAccessToken currentAccessToken] hasGranted:@"user_photos"];
if (!bGranted_user_photos || !bGranted_publish_actions ){
[PFFacebookUtils linkUserInBackground:[PFUser currentUser] withPublishPermissions:@[@"publish_actions"] block:^(BOOL succeeded, NSError *error) {
if (succeeded) {
bool bGranted_publish_actionsV2=[[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"];
在Parse sdk版本1.7.3版本中解决
Franck 在上面的评论中提供的 link 表明这是一个 Facebook 错误。必须等待下一个版本。
同时,这里有一个解决方法。
解决方法
在对当前访问令牌调用刷新后保留一组权限。您可以将它们保存在 AppDelegate
中,或者仅保存在与 facebook 打交道的 class 中。
[FBSDKAccessToken refreshCurrentAccessToken:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
NSDictionary *resultDictionary = (NSDictionary *) result;
NSArray *permissionsArray= [resultDictionary objectForKey:@"data"];
NSMutableSet *permissionsSet = [NSMutableSet new];
for (NSDictionary *permissionDic in permissionsArray) {
if ([[permissionDic objectForKey:@"status"] caseInsensitiveCompare:@"granted"] == NSOrderedSame) {
[permissionsSet addObject:[permissionDic objectForKey:@"permission"]];
}
}
blockSelf.permissions = permissionsSet;
}];
注意 - blockSelf.permissions
是调用刷新的对象上的 NSSet
属性。
我正在尝试验证我是否拥有 publish_actions
权限。总是假的。即使我请求并获得 publish_actions
并获得 succeeded=TRUE
,重新验证仍然 return false。
有什么想法吗?
bool bGranted_publish_actions=[[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"];
bool bGranted_user_photos=[[FBSDKAccessToken currentAccessToken] hasGranted:@"user_photos"];
if (!bGranted_user_photos || !bGranted_publish_actions ){
[PFFacebookUtils linkUserInBackground:[PFUser currentUser] withPublishPermissions:@[@"publish_actions"] block:^(BOOL succeeded, NSError *error) {
if (succeeded) {
bool bGranted_publish_actionsV2=[[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"];
在Parse sdk版本1.7.3版本中解决
Franck 在上面的评论中提供的 link 表明这是一个 Facebook 错误。必须等待下一个版本。
同时,这里有一个解决方法。
解决方法
在对当前访问令牌调用刷新后保留一组权限。您可以将它们保存在 AppDelegate
中,或者仅保存在与 facebook 打交道的 class 中。
[FBSDKAccessToken refreshCurrentAccessToken:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
NSDictionary *resultDictionary = (NSDictionary *) result;
NSArray *permissionsArray= [resultDictionary objectForKey:@"data"];
NSMutableSet *permissionsSet = [NSMutableSet new];
for (NSDictionary *permissionDic in permissionsArray) {
if ([[permissionDic objectForKey:@"status"] caseInsensitiveCompare:@"granted"] == NSOrderedSame) {
[permissionsSet addObject:[permissionDic objectForKey:@"permission"]];
}
}
blockSelf.permissions = permissionsSet;
}];
注意 - blockSelf.permissions
是调用刷新的对象上的 NSSet
属性。