Как создать тестового пользователя Facebook в IOS с помощью Facebook SDK - PullRequest
0 голосов
/ 09 октября 2011

Я разработал приложение для iPhone, которому нужен адрес электронной почты друга из Facebook.Предполагая, что ваш друг имеет приложение и предоставил разрешения для электронной почты и offline_access, я полагаю, что можно использовать:

[facebook requestWithGraphPath:@"FRIEND_ID?fields=id,email" andDelegate:self];

для получения адреса электронной почты.Как для тестирования и для отправки в Apple, как вы создаете в приложении ios тестового пользователя facebook с помощью Facebook SDK?Facebook предоставляет возможность создавать тестовых пользователей (http://developers.facebook.com/docs/test_users/),, но я не могу понять, как использовать информацию на этом веб-сайте в моем приложении ios, используя их sdk / graph api.

1 Ответ

0 голосов
/ 05 ноября 2011

Хорошо, я тоже изучил это, и вот что я придумал.

Согласно документации, можно создать тестового пользователя, вызвав графикAPI выглядит следующим образом:

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 требует приложениятокен доступа для создания тестового пользователя, а метод requestWithGraphPath:andParams:andHttpMethod:andDelegate: в файле SDK Facebook.m фактически отправляет токен доступа пользователя.Даже если вы специально установили токен доступа к приложению в словаре 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

Общий формат обоих запросов одинаков.Вот как будет выглядеть весь запрос в коде для второго из двух запросов.

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];

Надеюсь, это поможет вам преодолеть трудности в экспериментах с тестовыми пользователями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...