1

そのため、引き継いだアプリでは、アプリ ストアに送信する前に、Facebook からすべてが正常に読み込まれていました。その後、Facebook アプリで検証できませんでした。そこで、Facebook.m の一部をコメントアウトして、ユーザーにダイアログの使用を強制することにしました。以前の開発者は .m ファイルをまったく含めておらず、.a ファイルを含む古いバージョンの SDK を使用していました。そこで、新しいバージョンの SDK を使用することにし、すべての .m ファイルを含めました。問題は、アプリで次の動作が発生することです。

 [facebook requestWithGraphPath:@"me" andDelegate:self]; 

ユーザー名を正常にロードし(もちろんログインしたとき)、次のことを行います。

 [facebook requestWithGraphPath:@"me/home" andDelegate:self]; 

フィード アイテム データを正常に読み込みます。

でも、

NSString *path = [NSString stringWithFormat:@"%@/picture?type=normal", facebookFeedItem.fromId];
[facebook requestWithGraphPath:path andDelegate:self];

fromId はユーザーの ID であり、成功した要求を返しますが、写真データの値は nil です。

以下も同様です。

 NSString *path = [NSString stringWithFormat:@"%@/picture", feedItem.objectIdentifier];
 [facebook requestWithGraphPath:path andDelegate:self]; 

これに影響を与えるバージョンで何か変更がありましたか、それとも他の内部問題を調べていますか。

ありがとう

4

1 に答える 1

0

私も同様の問題を抱えており、Facebook の SDK またはサーバー側の実装に問題があると結論付けました。写真を取得する方法は、FQL クエリを使用することです。これにより、期待どおりにデータが返され、実際、どのデータを返すかをより詳細に制御できます。これは、SQL の select ステートメントを実行するのとよく似ています (実際にはそれほど複雑ではないので、慣れていない場合でも簡単に理解できます..)

ドキュメントはこちら: http://developers.facebook.com/docs/reference/fql/

コードは次のようになります (たとえば、ログインしているユーザーのプロフィール写真の場合):

    NSString *fqlStatementForProfilePicture = @"SELECT pic FROM user WHERE uid=me()";

    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                               fqlStatementForProfilePicture, @"query",nil];

    FBRequest *theRequest = [facebook requestWithMethodName:@"fql.query"
                                 andParams:params
                             andHttpMethod:@"GET"
                               andDelegate:self];

ここから、デリゲート コールバックは、[facebook requestWithGraphPath.....]

于 2012-06-07T16:41:42.057 に答える