3

ユーザーが私のページを気に入ったかどうかを確認したい。ここで、ユーザーが持っているいいねのリストのリクエストを初期化します...

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

if ([defaults objectForKey:@"FBAccessTokenKey"] && [defaults objectForKey:@"FBExpirationDateKey"])
{
    [self.facebook setAccessToken:[defaults objectForKey:@"FBAccessTokenKey"]];
    [self.facebook setExpirationDate:[defaults objectForKey:@"FBExpirationDateKey"]];
}

if (![self.facebook isSessionValid])
{
    [self.facebook authorize:[[NSArray alloc] initWithObjects:@"publish_stream, user_likes", nil]];
}
else
{
[self.facebook requestWithGraphPath:@"me/likes" andParams:nil andHttpMethod:@"POST" andDelegate:self];    
}

コードはrequestWithGraphPathに対して実行されます。ただし、動作しません。「操作を完了できませんでした。(facebookErrDomainエラー10000)」というメッセージが表示されます。

4

1 に答える 1

6

POSTではなくいいねのgetリクエストが必要なので、問題はここにあると思います。

[self.facebook requestWithGraphPath:@"me/likes" andParams:nil andHttpMethod:@"POST" andDelegate:self];

これは次のようにする必要があります。

[self.facebook requestWithGraphPath:@"me/likes" andParams:nil andHttpMethod:@"GET" andDelegate:self];

これにより、いいねの完全なリストが表示されます。ただし、のようなものを1つ見つけたい場合は、次のようにFQLクエリを実行する必要があるようです。

https://api.facebook.com/method/fql.query?query=SELECT+user_id%2Cobject_id%2C+post_id+FROM+like+WHERE+user_id%3Dme%28%29%20and%20object_id=<OBJECT_ID_TO_CHECK>&access_token=<YOUR_ACCESS_TOKEN>

この言及のようにiOSSDKを介してこれを実行します: https ://stackoverflow.com/a/6372236 そしてあなたが何かを取り戻すならば、ユーザーはそれを好きです。これが役立つかどうか教えてください。ありがとう!

編集:実際には、グラフAPIを使用して単一のクエリを実行できます。こんな感じです:

https://graph.facebook.com/me/likes/<OBJECT_ID>

したがって、オブジェクトIDをリクエストに追加するだけです。

[self.facebook requestWithGraphPath:@"me/likes/<OBJECT_ID>" andParams:nil andHttpMethod:@"GET" andDelegate:self];

そして、あなたは良いはずです。

于 2012-10-21T15:31:40.973 に答える