16

次のコードを使用して、Facebookの壁に画像をアップロードしています。

UIImage *img = [UIImage imageNamed:@"logoits.png"];

[FBRequestConnection startForUploadPhoto:img
                       completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {

    NSLog(@"Facebook posting %@",result);
    NSLog(@"Facebook posting %@",error);

}];  

期待どおりに動作しますが、このアップロードされた写真にメッセージまたはタイトルを追加したいと思います。FBRequestConnectionのドキュメントを見ると、その例はありません。http://developers.facebook.com/docs/sdk-reference/iossdk/3.0/class/FBRequestConnection/

メッセージ付きの画像をアップロードするにはどうすればよいですか?

4

3 に答える 3

45

Facebook SDK 3.0では、指定されたメソッドを使用して投稿できるのは画像のみです。その他のアクションでは、piのグラフを使用する必要があります。

したがって、メッセージ付きの画像を投稿するには、graph-apiを使用する必要があります。これは、ユーザーのタイムラインにメッセージ付きの画像を投稿できるようにするコード行です。

NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
[params setObject:@"your custom message" forKey:@"message"];
[params setObject:UIImagePNGRepresentation(_image) forKey:@"picture"];
_shareToFbBtn.enabled = NO; //for not allowing multiple hits

[FBRequestConnection startWithGraphPath:@"me/photos"
                                 parameters:params
                                 HTTPMethod:@"POST"
                          completionHandler:^(FBRequestConnection *connection,
                                              id result,
                                              NSError *error) 
 {
     if (error) 
     {
         //showing an alert for failure
         [self alertWithTitle:@"Facebook" message:@"Unable to share the photo please try later."];
     } 
     else
     {
         //showing an alert for success
         [UIUtils alertWithTitle:@"Facebook" message:@"Shared the photo successfully"];
     }
     _shareToFbBtn.enabled = YES;
 }];

_shareToFbBtnまた、ログインが成功した後にのみ有効になっていることを確認してください。

于 2012-09-27T06:26:41.880 に答える
5

linesvishyのソリューションはうまく機能します。また、Facebook SDK 3.1を使用していて、メソッドを使用した場合は注意が必要です。

FBRequest *request = [FBRequest requestForUploadPhoto:_imageToShare];

次の行を使用して置き換えることができます。

NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
[params setObject:_textToShare forKey:@"message"];
[params setObject:_imageToShare forKey:@"picture"];
FBRequest *request = [FBRequest requestWithGraphPath:@"me/photos" parameters:params HTTPMethod:@"POST"];

それが役に立てば幸い!ハッピーコーディング!

于 2013-01-10T10:34:03.377 に答える
0

投稿と画像とメモの例を次に示します。

http://developers.facebook.com/docs/tutorials/ios-sdk-tutorial/publish-open-graph-story/

于 2012-09-26T18:10:06.237 に答える