Facebookに画像を投稿すると、常に「(#324)アップロードファイルが必要です」というメッセージが表示されます。同じエラーで質問された人がたくさんいます。ほとんどの人はphp sdkを使用しています。fileUploadをtrueに設定することで問題を解決したようです($facebook->setFileUploadSupport(true);)、例: http://endorkins.com/2010/12/28/facebook-graph-api-upload-photos-requires-upload-file/、写真のアップロード時の例外Facebook グラフ API を使用
しかし、私は iOS でグラフ API を直接使用しています。このフラグを設定する場所が見つかりません。アルバムの作成時と画像のアップロード時に設定しようとしましたが、うまくいきませんでした。
Facebook グラフ API リファレンス ( http://developers.facebook.com/docs/reference/api/album/ ) では、アルバムがアルバムに写真をアップロードできるようにするには、can_upload を true にする必要があると述べていたので、アップロードしようとしたアルバムを確認しました。画像とそれは本当です。
user_photos、friends_photos、publish_stream、publish_actions の許可も得ています。
以下は、画像を投稿するための私のコードです。これに多くの時間を費やしましたが、修正できません。助けてください! どんな助けでも大歓迎です。
NSURL *url = [NSURL URLWithString:@"https://graph.facebook.com/"];
AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:url];
NSMutableDictionary *params = [NSMutableDictionary dictionary];
[params setObject:token forKey:@"access_token"];
[params setObject:@"the message" forKey:@"message"];
NSData *imgData = UIImageJPEGRepresentation(self.img, 1.0);
[params setObject:imgData forKey:@"source"];
NSMutableURLRequest *request = [client requestWithMethod:@"POST" path:[NSString stringWithFormat:@"%@/photos", albumId] parameters:params];
[request setValue:@"multipart/form-data" forHTTPHeaderField:@"Content-Type"];
// [request setValue:[NSString stringWithFormat:@"%d", imgData.length] forHTTPHeaderField:@"Content-Length"];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc]initWithRequest:request];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"%@", error);
NSLog(@"%@", operation.responseString);
}];
[operation start];