2012-06-06 6 views
0

Я создал страницу на facebook и хочу опубликовать на этой странице. Мой пользователь facebook является администратором страницы. С запросом «me/account» я возвращаю access_token и идентификатор для этой страницы и код ниже сообщений на эту страницу.facebook ios api сообщение на страницу - ссылка или сообщение

Facebook* facebook = app.facebook; 

NSDictionary* pg = [fbpages objectAtIndex:0]; // page access_token, id and name 
NSLog(@"page %@\n",[pg valueForKey:@"name"]); 

NSMutableDictionary *params = [[NSMutableDictionary alloc] init];  

NSString *graphPath = [NSString stringWithFormat:@"%@/feed", [pg valueForKey:@"id"] ]; 
[params setObject:[pg valueForKey:@"access_token"] forKey:@"access_token"]; 
[params setObject:@"This is my message coming from my ios app." forKey:@"message"]; 

// ----- specify that this is a link ---------------------- 
[params setObject:@"link" forKey:@"type"]; 
[params setObject:@"http://www.whatever.com" forKey:@"link"]; 
// ------ this is the difference between case 1 and 2 ----- 

[facebook requestWithGraphPath:graphPath andParams:params andHttpMethod:@"POST" andDelegate:app]; 

Теперь, странная вещь, (case1), если я отправляю простое сообщение (без части указать ссылку), она появится на странице, как она была размещена на странице (Вариант 2), но когда ссылка есть, он появляется как мой пост.
case1 - появляется на ЛЕВОМ стороны шкалы времени как простое сообщение
Варианта 2 - появляется на ПРАВОЙ стороны шкалы времени, как «другие посты», а страница не отображается, но только показан " прикрепление ".

Помимо двух параметров «тип» и «ссылка», случаи 1 и 2 идентичны. Кто-нибудь испытал ту же проблему? Какие-либо предложения? Что я делаю не так? Я хочу, чтобы моя ссылка, размещенная на странице, выглядела так же, как на стене пользователя.

ответ

0

Хорошо, понял себя. Если я вызываю requestWithGraphPath с токеном для данной страницы, он работает так, как ожидалось.

Так он выглядит:

facebook.accessToken = [pg valueForKey:@"access_token"]; 
[facebook requestWithGraphPath:graphPath andParams:params andHttpMethod:@"POST" andDelegate:app]; 

Очевидно, что вам нужно сбросить исходный маркер доступа, когда запрос завершен.

Смежные вопросы