エラーメッセージの通り、bodyに値が入っていないため怒られているのですが、
bodyに値を入れる方法(?)でどこが間違っているのかご教授頂きたく質問しました。
ChatworkというチャットツールのAPIを叩いており、実行すればメッセージが投稿されるという
プログラムを作成しています。
以下にソースコードを記載します。
import UIKit class ViewController: UIViewController { var api_key = "my api key" var url = "https://api.chatwork.com/v2" var room_id = "my room number" var msg = "テスト" override func viewDidLoad() { super.viewDidLoad() hitTheApi() } func hitTheApi() { var urlString = "https://api.chatwork.com/v2" urlString = "(urlString)/rooms/(room_id)/messages" let request = NSMutableURLRequest(url: NSURL(string: urlString)! as URL) //set the method(HTTP-POST) request.httpMethod = "POST" //set the header(s) request.addValue(api_key, forHTTPHeaderField: "X-ChatWorkToken") //set the request-body(JSON) let params = ["body": msg] do { //ここで値を入れられていない? request.httpBody = try JSONSerialization.data(withJSONObject: params, options: []) } catch { print(error.localizedDescription) } let task = URLSession.shared.dataTask(with: request as URLRequest, completionHandler: {data, response, error in if (error == nil) { let result = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)! print("大成功") print(result) } else { print("oh my god") print(error as Any) } }) task.resume() } }
api_keyとroom_numberは伏せさせて頂いております。
現状では実行すると、コンソールに大成功と
{"errors":["Parameter 'body' is required"]}と表示されます。
また、参考にしたURLは以下となります。
GAS,PHP,PythonでChatworkのAPIを叩く
SwiftでHTTPリクエストする
ご助言を頂ければ幸いです。
回答1件
あなたの回答
tips
プレビュー