[iOS微博項目,[iOS博項目
github: https://github.com/hellovoidworld/HVWWeibo A.使用微博API發送微博 1.需求 學習發送微博API 發送文字微博 發送帶有圖片的微博 2.思路 直接按照微博API的文檔指示使用 這裡測試上傳帶圖片微博 3.實現 在“發微博”介面,點擊右上方發送就調用API
1 // HVWComposeViewController.m 2 /** 發送微博 */ 3 - (void) sendWeibo { 4 if (self.composeView.text.length == 0) { 5 [MBProgressHUD showError:@"你好像忘記了內容..."]; 6 return; 7 } 8 9 [MBProgressHUD showMessage:@"發送微博中..."];10 11 if (self.imageDisplayView.images.count) { // 發送的時帶圖片的微博12 [self sendWeiboWithTextNImage];13 } else { // 發送的是純文字微博14 [self sendWeiboWithText];15 }16 }17 18 /** 發送文字微博 */19 - (void) sendWeiboWithText {20 // 建立http操作管理者21 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];22 23 // 設定參數24 NSMutableDictionary *param = [NSMutableDictionary dictionary];25 // 存取權杖26 HVWAccountInfo *accountInfo = [HVWAccountInfoTool accountInfo];27 param[@"access_token"] = accountInfo.access_token;28 // 微博文本29 param[@"status"] = self.composeView.text;30 31 // 發送請求32 [manager POST:@"https://api.weibo.com/2/statuses/update.json" parameters:param success:^(AFHTTPRequestOperation *operation, id responseObject) {33 [MBProgressHUD hideHUD];34 [MBProgressHUD showSuccess:@"發送成功!"];35 } failure:^(AFHTTPRequestOperation *operation, NSError *error) {36 HVWLog(@"發送微博失敗, error:%@", error);37 [MBProgressHUD hideHUD];38 [MBProgressHUD showError:@"發送失敗!error"];39 }];40 }41 42 /** 發送圖文微博 */43 - (void) sendWeiboWithTextNImage {44 if (self.imageDisplayView.images.count == 0) {45 [MBProgressHUD hideHUD];46 [MBProgressHUD showError:@"懵了,找不到圖兒!"];47 return;48 }49 50 // 建立http操作管理者51 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];52 53 // 設定參數54 NSMutableDictionary *param = [NSMutableDictionary dictionary];55 // 存取權杖56 HVWAccountInfo *accountInfo = [HVWAccountInfoTool accountInfo];57 param[@"access_token"] = accountInfo.access_token;58 // 微博文本59 param[@"status"] = self.composeView.text;60 61 // 發送請求62 [manager POST:@"https://upload.api.weibo.com/2/statuses/upload.json" parameters:param constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {63 64 // 發送的圖片資料,其實現在開放的API只允許上傳一張圖片65 UIImage *image = [self.imageDisplayView.images firstObject];66 if (image) {67 NSData *imageData = UIImagePNGRepresentation(image);68 [formData appendPartWithFileData:imageData name:@"pic" fileName:@"statusPic" mimeType:@"image/png"];69 }70 } success:^(AFHTTPRequestOperation *operation, id responseObject) {71 [MBProgressHUD hideHUD];72 [MBProgressHUD showSuccess:@"發送成功!"];73 } failure:^(AFHTTPRequestOperation *operation, NSError *error) {74 HVWLog(@"發送微博失敗, error:%@", error);75 [MBProgressHUD hideHUD];76 [MBProgressHUD showError:@"發送失敗!"];77 }];78 }
發送成功:
#mark:發送微博失敗的原因有:1.沒有常值內容2.使用發送純文字API,卻上傳圖片3.使用發送圖文API,卻沒有上傳圖片 注意:新浪開放的API一次只能上傳一張圖片,選擇多張的時候會使用最後一張