Iphone 如何检查用户是否已授予Facebook iOS特定权限
在我的iOS应用程序中,我只想检查用户是否已授予Facebook发布流权限 我不知道如何处理对电话的回应Iphone 如何检查用户是否已授予Facebook iOS特定权限,iphone,objective-c,ios,xcode,facebook-graph-api,Iphone,Objective C,Ios,Xcode,Facebook Graph Api,在我的iOS应用程序中,我只想检查用户是否已授予Facebook发布流权限 我不知道如何处理对电话的回应 [facebook requestWithGraphPath:@"me/permissions" andDelegate:self]; 在我的FBRequest委托方法中。我试过: if (request == self.permissionRequest) { NSString *key = [result objectForKey:@"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分。即使我知道权限处于活动状态 您可以使用具有me/权限的open graph API发出FBI请求。
它将返回一个带有字典的响应,其中键是权限。一个值将与1=YES,0=NO相关联您可以使用具有me/权限的open graph API发出FBRequest。
它将返回一个带有字典的响应,其中键是权限。一个值将与1=YES,0=NO相关联这是我为create\u事件所做的一个工作示例。当然,它也可以用于其他人:
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");
}];
这是我为create_事件所做的一个工作示例。当然,它也可以用于其他人:
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");
}];
这真的是最快的方法吗?因为我想在检查当前会话是否有效的同时进行此测试,并且需要几秒钟。。。我想我可以试着提前做测试…我认为这是最好的方法。。。但是,如果这是您的问题,那么就没有SDK方法可以这样做……我已经尝试了id key=[result objectForKey:@publish_stream];DLog@Key:%@,键;但是“key”为null?将其转换为int总是返回0。。。我处理错了吗?如果您有疑问,请打印所有键,但通常情况下,FBRequest会返回类似{data={//some data}的字典,这确实是最快的方法?因为我想在检查当前会话是否有效的同时进行此测试,并且需要几秒钟。。。我想我可以试着提前做测试…我认为这是最好的方法。。。但是,如果这是您的问题,那么就没有SDK方法可以这样做……我已经尝试了id key=[result objectForKey:@publish_stream];DLog@Key:%@,键;但是“key”为null?将其转换为int总是返回0。。。我处理错了吗?如果您有疑问,请打印所有键,但通常FBRequest会返回类似{data={//some data}的字典