在我的iOS应用中,我只想检查用户是否已授予Facebook publish_stream权限。
我不确定如何处理对通话的响应
[facebook requestWithGraphPath:@"me/permissions" andDelegate:self];
在我的FBRequest委托方法中。我试过了:
if (request == self.permissionRequest) {
NSString *key = [result objectForKey:@"publish_stream"];
DLog(@"Key: %@", key);
}
但我得到了空。
如果我尝试
id *key = [result objectForKey:@"publish_stream"];
int keyInt = [key integerValue];
DLog(@"Key: %i", keyInt);
我总是得到0.即使我知道许可是有效的......
答案 0 :(得分:3)
您可以使用带有“me / permissions”的开放图形API创建FBRequest。 它会返回一个带有字典的响应,其中键是权限。值将关联(1 =是,0 =否)
答案 1 :(得分:3)
这是我为create_events做的一个工作示例。当然可以用于其他人:
FBRequest *eventPostOK = [FBRequest requestWithGraphPath:@"me/permissions" parameters:Nil HTTPMethod:@"GET"];
[eventPostOK startWithCompletionHandler: ^(FBRequestConnection *connection,
NSDictionary* result,
NSError *error) {
BOOL canDoIt = FALSE;
if (!error)
{
FBGraphObject *data = [result objectForKey:@"data"];
for(NSDictionary<FBGraphObject> *aKey in data) {
canDoIt = [[aKey objectForKey:@"create_event"] boolValue];
}
}
else
NSLog(@"%@", error);
NSLog(@"%@", canDoIt ? @"I can create Events" : @"I can't create Events");
}];