iPhotoプラグインを作る「フォト蔵編」-6 : フォト蔵APIヘのアクセス-2 : 写真のアップロード
前回までの NSURLRequest の話を利用して、実際にフォト蔵へ写真をアップロードしてみましょう。使用するAPIは photo_add です。
#define ASCII_DATA(str) [(NSString*)(str) dataUsingEncoding:NSASCIIStringEncoding]
{
NSURL* apiUrl = [NSURL URLWithString:@"http://api.photozou.jp/rest/photo_add"];
NSMutableURLRequest* req = [NSMutableURLRequest requestWithURL:apiUrl];
// Base64エンコーディング
NSData* baseData = ASCII_DATA(([NSString stringWithFormat:@"%@:%@", username, password]));
NSString* baseStr = [baseData stringEncodedWithBase64];
// Basic認証ヘッダ追加
[req setValue:[NSString stringWithFormat:@"Basic %@", baseStr] forHTTPHeaderField:@"Authorization"];
// 画像パス
NSURL* imgUrl = [NSURL fileURLWithPath:imgPath];
// マルチパート生成 (前回のエントリ参照)
NSDictionary* params = [NSDictionary dictionaryWithObjectsAndKeys:
album_id, @"album_id",
imgUrl, @"photo",
nil];
NSData* formData = [self generateFormData:params boundary:@"___boundary___"];
[req addValue: @"multipart/form-data; boundary=___boundary___" forHTTPHeaderField: @"Content-Type"];
[req setHTTPBody:formData];
// POSTで送信
[req setHTTPMethod:@"POST"];
NSURLResponse* res;
NSData* response = [NSURLConnection sendSynchronousRequest:req returningResponse:&res error:nil];
}
これで、各種パラメータを適切に設定できていれば、指定のアルバムに指定の画像ファイルを追加することが出来ます。ここまでくれば、まあ、あともう少しですかね。多分。