你如何创build一个Facebook的testing用户在iOS使用Facebook的SDK
我开发了一个iPhone应用程序,需要一个Facebook的朋友的电子邮件地址。 假设你的朋友有这个应用程序,并已授予电子邮件和offline_access的权限,那么我相信可以使用:
[facebook requestWithGraphPath:@"FRIEND_ID?fields=id,email" andDelegate:self];
获取他们的电子邮件地址。 为了testing的目的和提交给苹果,你如何创build一个iOS应用程序的Facebooktesting用户使用Facebook的SDK? Facebook提供了创buildtesting用户的function(http://developers.facebook.com/docs/test_users/),但是我不明白如何使用他们的sdk / graph api在我的ios应用程序中使用这个网站上的信息。
好的,我也一直在研究这个,这是我想到的。
根据文档,应该可以通过调用图API来创buildtesting用户,如下所示:
NSString *urlString = [NSString stringWithFormat:@"%@/accounts/test-users", kAppId]; [facebook requestWithGraphPath:urlString andParams:params andHttpMethod:@"POST" andDelegate:self];
其中params
是一个包含部分或全部参数的NSMutableDictionary,详见https://developers.facebook.com/docs/test_users/ 。
但是,我发现API需要一个应用程序访问令牌来创build一个testing用户,并且SDK文件Facebook.m
的方法requestWithGraphPath:andParams:andHttpMethod:andDelegate:
实际上会发送一个用户访问令牌。 即使您在params
字典中专门设置了应用程序访问令牌,它也将在此方法中被用户访问令牌覆盖。
看来围绕这个困境有两种办法。 我们可以用Facebook SDK猴子,并考虑到这一点,这是绝对不推荐。 或者我们可以诉诸标准的HTTP请求,并把事情交给我们自己。 这是我如何处理第二种方法。
首先,我们需要应用访问令牌,可以通过向https://graph.facebook.com/oauth/access_token?client_id=APP_ID&client_secret=APP_SECRET&grant_type=client_credentials
发送请求来获取该令牌。
然后,我们在接下来的请求中使用从此请求返回的应用访问令牌: https://graph.facebook.com/APP_ID/accounts/test-users?installed=true&name=FULL_NAME&permissions=read_stream&method=post&access_token=APP_ACCESS_TOKEN
: https://graph.facebook.com/APP_ID/accounts/test-users?installed=true&name=FULL_NAME&permissions=read_stream&method=post&access_token=APP_ACCESS_TOKEN
两个请求的总体格式是相同的。 以下是两个请求中的第二个,整个请求在代码中的样子。
NSString *urlString = @"https://graph.facebook.com/APP_ID/accounts/test-users"; NSURL *testUserUrl = [NSURL URLWithString:urlString]; NSMutableURLRequest *testUserRequest = [[NSMutableURLRequest alloc] initWithURL:testUserUrl]; [testUserRequest setHTTPMethod:@"POST"]; [testUserRequest addValue:@"text/plain" forHTTPHeaderField:@"content-type"]; NSString *bodyString = @"installed=true&permissions=read_stream&access_token=APP_ACCESS_TOKEN"; NSData *bodyData = [bodyString dataUsingEncoding:NSUTF8StringEncoding]; [testUserRequest setHTTPBody:bodyData]; [[NSURLConnection alloc] initWithRequest:testUserRequest delegate:self]; [testUserRequest release];
希望这可以帮助你完成testing用户的实验。
- 断点2.1错误parsing/ Facebook的iOS SDK
- Facebook UIActivityViewController缺less取消和发布button
- iOS:使用“下一个”分页获取Facebook朋友
- 从应用程序链接到Safari“添加到主屏幕”?
- iOS:发送Facebook请求
- 在LSApplicationQueriesSchemes下的Info.plist中缺lessfbauth2,并且是iOS 9.0所必需的
- 如何在没有设备的情况下将钥匙串共享function添加到App ID?
- 如何使用Graph API下载上传到私人Facebook群组的文件
- FBLikeControlcallback