我使用Facebook SDK 3.0登录用户,我成功获得了FB ID和FB会话令牌。
`NSDictionary<FBGraphUser> *user.id` (FB ID)
和
[FBSession.activeSession accessToken]
(FB会话令牌)
现在我想要在我的应用内发布帖子。所以我正在创建一个POST请求并传递像这样的参数
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://graph.facebook.com/%@/og.likes",@"34856345..."]] cachePolicy:NO timeoutInterval:5.0];
[urlRequest addValue:@"BAAGjjgD8bhUBAM73jzkpy23zlHo7e8ZAqPaOGvbxU..." forHTTPHeaderField:@"access_token"];
[urlRequest addValue:myshareLink forHTTPHeaderField:@"object"];
[urlRequest setHTTPMethod:@"POST"];
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self startImmediately:YES];
[theConnection autorelease];
但我收到此错误
result:{"error":{"message":"An access token is required to request this resource.","type":"OAuthException","code":104}}
但如果我使用CURL命令中的相同访问令牌和用户ID,则会成功发布。
curl -X POST -F 'access_token=BAAGjjgD8bhUBAE8XmogjJZAZAPyJ8SUyxkllJQ...' -F 'object=http://xyz.com/abc/gallery.php#pic/pic2/' https://graph.facebook.com/732../og.likes
请帮助我弄清楚我错过了什么。
由于
答案 0 :(得分:0)
我建议使用iOS Facebook SDK中的FBRequestConnection和FBRequest类,而不是使用NSURLConnection和NSMutableURLRequest。我相信Facebook需要一些Facebook SDK自动为您生成的iOS级别的额外标题值。
对于类似的操作,我使用FBRequest类方法requestForGraphPath来创建请求。在将FBRequest传递给FBRequestConnection之前,不要忘记在FBRequest上设置httpMethod和session字段。