Я потратил часы на это и не могу заставить его работать. По сути, мне просто нужна кнопка в моем приложении, которая будет «Нравится» на Facebook. Я создал приложение на странице разработчиков в Facebook и имею связанную страницу приложения. В моем коде я запрашиваю эти разрешения:
_permissions = [NSArray arrayWithObjects:@"publish_stream", @"publish_actions", @"user_birthday", nil];
Я могу нормально получить изображение профиля, но когда я пытаюсь поставить лайк, используя этот код:
NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
_facebook.accessToken, @"access_token",
nil];
[_facebook requestWithGraphPath:@"329756493773381/og.likes" andParams:params andHttpMethod:@"POST" andDelegate:self];
Я получаю этот ответ об ошибке:
(facebookErrDomain error 10000.)" UserInfo=0x20090590 {error={
code = 200;
message = "(#200) Requires extended permission: publish_actions";
type = OAuthException;
}}
При входе в приложение Facebook запрашивает у меня разрешение на просмотр моего дня рождения и сообщает мне, что он будет публиковать сообщения от моего имени, но, похоже, не получает разрешения на публикацию _.
Есть ли что-то, что мне не хватает, что мне нужно сделать?
Я вижу, что в Temple Run есть кнопка «Мне нравится» в Facebook, и за ее нажатие предлагаются бонусные монеты. Это то, чего я хочу достичь.
РЕДАКТИРОВАТЬ-------
Я изменил свои разрешения на @"публикацию _действий", @"день рождения пользователя _", и теперь диалог авторизации говорит
"This app may post on your behalf, including objects you liked and more"
что, похоже, является разрешением на публикацию _, однако я все еще получаю сообщение об ошибке
message = "(#200) Requires extended permission: publish_actions";
Я изменил эту строку:
[_facebook requestWithGraphPath:@"329756493773381/og.likes" andParams:params andHttpMethod:@"POST" andDelegate:selrf];
этому:
[_facebook requestWithGraphPath:@"329756493773381/og.likes" andDelegate:self];
и теперь я получаю ответ, хотя он не ставит лайк
Это результат ответа:
{
data = (
);
paging = {
next = "https://graph.facebook.com/329756493773381/og.likes?sdk=ios&sdk_version=2&access_token=BAAGeAp3ZBGwoBAPICjlgB5zK0YECyP8yElf8hJoMrx8Qs4vjeZAK5PlXFAVbGM1JyXHE0wZBvU0aBeCzCUTZBejQgoJ44CAIQsrG64TfrHdxjMqWD&format=json&offset=25&limit=25";
};
}
Есть идеи, что попробовать дальше?
РЕДАКТИРОВАТЬ 2 ---------------Я делаю успехи в этом. Я добавил идентификатор пользователя в запрос графа следующим образом
NSString *graphPath = [NSString stringWithFormat:@"%@/og.likes",facebookID];
и использовал эти параметры
NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"AAAGeAp3ZBGwoBABvKjsPZAoQQNG9cDPJI2v2TI8acyyPSNtm9ZBkfydHqVZAjSKWSbLuvFwxyxSrCts7kFZCnh7Y6f5PFNlWb6smF8XF33wlRZBgfLyhT1", @"access_token",
@"http://samples.ogp.me/329756493773381", @"object",
nil];
и теперь мне нравится появляться на моей временной шкале :-)Я использовал токен доступа -, предоставленный для входа в Facebook, но похоже, что тот, который предоставляется объектом графа, отличается.
Теперь,то, что я вижу, имеет этот образец:
Darren likes object on MyAPP
Возможно ли вообще иметь его как
Darren likes MyAPP with it linking to the app Facebook page?
Спасибо