0

Facebook SDK for iOS を使用して投稿を機能させることができないようです。「startWithGraphPath:parameters:HTTPMethod:completionHandler:」関数を使用しています。メッセージ、場所、画像は機能しますが、友達にタグを付けることができないようです。NSDictionary キーとオブジェクトを

parameters[@"tags"] = self.friendsIDs; 

これは、コンマで区切られた Facebook ユーザー ID の文字列です (Facebook リファレンス ページ: https://developers.facebook.com/docs/reference/api/user/#postsによる)。ただし、これは常に発生します。

com.facebook.sdk:ParsedJSONResponseKey={
    body =     {
        error =         {
            code = 100;
            message = "(#100) param tags must be an array.";
            type = OAuthException;

それで、それらを配列に入れましたが、それでも機能しませんでした。実際、別のエラーが発生します。

-[__NSArrayM length]: unrecognized selector sent to instance 0x1228abc0 2013-09-26 16:47:36.917 DrinkingGamePicker[27558:a0b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM length]: unrecognized selector sent to instance 0x1228abc0インスタンス 0x1228abc0' に送信

これらのパラメータをフォーマットする方法を知っている人はいますか? ドキュメントや明確な例が見つかりません。前もって感謝します。

余談ですが、アプリから投稿して人々にタグを付ける方法を知っているが、場所は知らない人はいますか? すべての方法は、少なくとも最初に場所にタグを付ける必要があることを意味しているように感じます.

ありがとう!

4

1 に答える 1

2

私の経験から、同時に投稿で友達にタグを付けることはできません。ただし、投稿が成功した後に友達をタグ付けすることはできます。投稿後、completionHandler ブロックから投稿 ID を取得する必要があります。ここに私が今使っているコードがあります。

NSString *postId = //result from posting completionHandler;
NSString *path = [NSString stringWithFormat:@"%@/tags",postId];
NSMutableArray *tags = [NSMutableArray array];
for (NSString *friendId in self.tagFriends) {
    [tags addObject:[NSDictionary dictionaryWithObject:friendId forKey:@"tag_uid"]];
}

NSMutableDictionary *param = [NSMutableDictionary dictionary];
[param setObject:JSONStringWithObject(tags) forKey:@"tags"]; 
//JSONStringWithObject() is just a function develop by myself using NSJSONSerialization to wrap NSArray into JSON format NSString

[FBRequestConnection startWithGraphPath:path parameters:param HTTPMethod:@"POST"     completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
    //check error here 
}];
于 2013-09-27T02:21:13.917 に答える