我正在使用Facebook登录开发应用程序,并使用用户名和密码登录。
现在,我想在Facebook上找到所有用户类型(Facebook和普通用户)的公共页面的所有事件。
问题是拥有Facebook的用户可以检索数据,但是"正常"用户不能,因为数据是零。
步骤如下:
1 - 使用我的Facebook App的正确凭据编译此网址:
2 - 将网址放入浏览器并检索应用程序令牌格式为:
53682XXXXXXXXXX | w6F3Ic6L48XXXXXXXXXXXXXXXXX
3 - 使用这段代码:
NSString *token = [[[FBSession activeSession] accessTokenData] accessToken];
NSString *urlString;
if (!userWithFb) {
NSString *token = @"53682XXXXXXXXXX|w6F3Ic6L48XXXXXXXXXXXXXXXXX";
urlString = [NSString stringWithFormat:@"https://graph.facebook.com/%@/events?access_token=%@", pageId,token];
}else{
urlString = [NSString stringWithFormat:@"https://graph.facebook.com/%@/events?access_token=%@", pageId,token];
}
NSData* data = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]];
if(data != nil)
[self performSelectorOnMainThread:@selector(fetchedData:)
withObject:data waitUntilDone:YES];
但普通用户的数据为零。当我把" urlstring"在我的浏览器中,我看到了所有数据,我不知道问题出在哪里。等待解决方案我说谢谢。
答案 0 :(得分:0)
我通过在if语句之后添加这段代码解决了我的问题:
NSString *encodedURLString = [urlString stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];
url = [NSURL URLWithString:encodedURLString];
NSData* data = [NSData dataWithContentsOfURL:url];
问题是“|”在令牌中,它必须替换为“&”。
希望这对你有帮助!