1

プロパティのデフォルト値を使用して、オブジェクトを壁に正常に投稿しました。

ここで行う必要があるのは、コードを使用してそのオブジェクトのこれらのプロパティを手動で設定することです。

これが私がしたことです:

@protocol OGApple<FBOpenGraphAction>

@property (nonatomic, retain) NSString *url;
@property (nonatomic, retain) NSString *title;
@property (nonatomic, retain) NSString *image;
@property (nonatomic, retain) NSString *description;

@end

@protocol OGEatAction<FBOpenGraphAction>

@property (retain, nonatomic) id<OGApple> apple;

@end

ここでのオブジェクト「apple」には、4つの必須プロパティ(URL、タイトル、画像、説明)があります、、、これが私がそれらを設定する方法です:

オブジェクトを定義します。

id<OGApple> graphObject = (id<OGApple>)[FBGraphObject graphObject];

アクションを定義します。

id<OGEatAction> action = (id<OGEatAction>)[FBGraphObject graphObject];

プロパティを設定します(私はメソッド1と2を試しました)それらのどれもオブジェクトプロパティを設定しません:

方法1:

[graphObject setObject:@"The Game" forKey:@"title"];
[graphObject setObject:@"https://raw.github.com/fbsamples/ios-3.x-howtos/master/Images/iossdk_logo.png" forKey:@"image"];
[graphObject setObject:@"http://samples.ogp.me/267255650070428" forKey:@"url"];

方法2:

graphObject.url = @"http://samples.ogp.me/267255650070428";
graphObject.title = @"Mohammad";
graphObject.image = @"https://raw.github.com/fbsamples/ios-3.x-howtos/master/Images/iossdk_logo.png";

次に、オブジェクトをアクションに割り当てます。

action.apple = graphObject;

次に、リクエストをPOSTします

[FBRequestConnection startForPostWithGraphPath:@"me/theapp:eat"
                                       graphObject:action
                                 completionHandler:^(FBRequestConnection *connection,
                                                     id result,
                                                     NSError *error) {
                                     // handle the result
                                     if(error)
                                         NSLog(@"%@", error);
                                     else
                                         NSLog(@"%@", result);
                                 }];

リクエストは正常に投稿され、ID=xxxxxxxxxxを返します

しかし、私のタイムラインでは、オブジェクトは私が渡したパラメーターを取りません!

何かを見逃したり、サーバーに追加の構成が必要でしたか?

前もって感謝します :)

4

0 に答える 0