0

Facebookでページを作成し、そのページに投稿したいと考えています。私の Facebook ユーザーはページの管理者です。「me/account」というリクエストで、そのページの access_token と id が返され、以下のコードがそのページに投稿されます。

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

さて、奇妙なことは、(ケース1)単純なメッセージを(リンク部分を指定せずに)投稿すると、ページによって投稿されたとおりにページに表示されますが、(ケース2)リンク情報がある場合は表示されます私の投稿として。
case1 -タイムラインの左側に単純なメッセージとして表示されますcase2
-タイムラインの右側に「他の投稿」として表示され、ページはレンダリングされず、「添付」記号のみが表示されます。

2 つのパラメータ「type」と「link」を除いて、ケース 1 と 2 は同じです。誰も同じ問題を経験しましたか? 助言がありますか?私は何を間違っていますか?ページに投稿されたリンクが、ユーザーのウォールに表示されるのと同じように表示されるようにします。

4

1 に答える 1

0

わかりました、自分自身を理解しました。特定のページのトークンを使用して requestWithGraphPath を呼び出すと、期待どおりに機能します。

したがって、次のようになります。

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

明らかに、リクエストが完了したら、元の accessToken をリセットする必要があります。

于 2012-06-07T06:18:06.043 に答える