5

Open Graphアクションを公開するためにFacebook iOS SDK 3.5を使用しようとしています。私の行動は、 takephotoです。photoには、さらにstringという名前のプロパティがあります。filterです。FacebookはカスタムOpen Graphプロパティを受け入れません

私は私のグラフオブジェクト(すべての値が有効であると作業)作成しています:

NSMutableDictionary<FBOpenGraphObject> *object = 
[FBGraphObject openGraphObjectForPostWithType:@"tonerapp:photo" 
               title:@"photo" 
               image:imageData 
                url:nil 
              description:title]; 

をそれから私は私のフィルタを追加します。

object[@"tonerapp:filter"] = filterName;

私はオブジェクトを投稿しようとすると、Iフィルタのプロパティがあることを確認できます(リクエストデータを表示するURLリクエストのFBSettingロギング動作が有効になっています)。

Body (w/o attachments): 
object: {"description":"","type":"tonerapp:photo", 
"tonerapp:filter":"classic","data":{}, 
"fbsdk:create_object":true, 
"image":{"url":"fbstaging:\/\/graph.facebook.com\/staging_resources\/MDExMDE1MjkzNzU1Njc3MDE0MjoxNTM4NzgwNjUy","user_generated":"true"}, 
"title":"photo"} 

私はそこに私のフィルタ特性を見ることができますが、応答はこれです:

error = { 
     code = 100; 
     message = "(#100) Object Missing a Required Value: 
Object at URL '' of type 'tonerapp:photo' is invalid because 
a required property 'tonerapp:filter' of type 'string' was not provided."; 
     type = OAuthException; 
    }; 

まあ、それがあります。データへのデータオブジェクト

object[@"data"] = @{@"filter": filterName}; //ラッピングに

object[@"data"] = @{@"tonerapp:filter": filterName}; //ラッピングと名前空間

object[@"toner:filter"] = filterName; //アプリケーション名の代わりに、名前空間名

の除去:私のようなすべての可能な組み合わせを試してみましたobject[@"filter"] = filterName; //名前空間の名前はまったくありません

[object setObject:filterName forKey:@"tonerapp:filter"]; // setobject notation

[object setValue:filterName forKey:@"tonerapp:filter"]; // setValueの表記

[object setObject:filterName forKey:@"filter"]; // setObjectメソッドと名前空間なし...

そしておそらくより。私はすべてを試しましたが、APIは常に同じエラーで失敗します。私はFacebookの私のアプリに行って、requiredの代わりにoptionalとしてfilterを設定すると、残りのオブジェクトが正しいことを確認できます。それはバグ/グラフAPIの不十分なドキュメンテーションですか、私は盲目なので、ここで何か明白ではありませんか?

ありがとう、 Can。

+0

あなたがこの問題を解決しましたか? (私は同じような問題に自分自身で実行している:http://stackoverflow.com/q/20376634/824515) – Magnus

+0

私は覚えているから(それはしばらくして、私はここに自分の質問に答えるのを忘れていた)それはURLプロパティについてエラーの説明は誤解を招くものでした。私は '[FBGraphObject openGraphObjectForPostWithType:@" tonerapp:photo " タイトル:タイトル: イメージ:imageData URL:@" http://tonerapp.info "description:desc];'を使用しています。投稿時にURLを入力してみてください。 –

+0

@Magnus問題を解決できるかどうか教えてください。私は答えを加えることができます。おそらくここに直接答えを加えることができます。 –

答えて

0

filterNameがURLエンコードされていることを確認してください。私はグラフのカスタムアクションでもあった映画の名前と同じ種類の問題を抱えていました。簡単な文字列だけを手動で投稿し、私たちにお知らせください。

4

単に "データ" の下に置く

object[@"data"][@"youcustomproperty"] = @"smth"; 
関連する問題