はじめまして。kintone×AWS Lambda×Twilioを利用したAPI開発をしている菅と申します。
Lambdaにて、下記のようなFunctionをnode.jsで作ろうとしています。
①kintoneアプリ内に登録した電話番号をGET
↓
②Twilioで荷電&DTMF値を取得
↓
③取得した値をkintone上の別アプリにPOST(追加)
①、②はうまくいくのですが、③が動かず苦労しています。
下記のようなソースでPOSTしようとするのですが、400(Bad Request)が返ってきてしまいます。
exports.handler = (event, context, callback) => {
var headers = {‘X-Cybozu-API-Token’ : ‘③で追加したいアプリのAPIトークンの値’};
var request = require(‘request’);
var body_post = {
app : アプリのID,
record : {
telno : { value : ‘①でGETした電話番号’ },
status : { value : ‘②の取得値(1~9)’ }
}
}
};
var post_options = {
url: ‘https://サブドメイン名/k/v1/records.json’,
method: ‘POST’,
headers: headers,
‘Content-Type’:‘application/json’,
json: body_post
};
request(post_options, function (error, response, body) {
console.log(response.statusCode);
});
};
・telno、statusともに文字列(1列)
・telno、statusともにルックアップフィールドではない
・アプリ内に他の項目はあるが、必須項目ではなく、初期値も設定されている
・APIトークンにはレコードの追加権限がついている
・セキュアアクセスは設定していない
①ではほとんど同じような形式(body部のみ異なる)でGETできるのですが、なぜPOSTできないのかと・・・
あれこれ試行錯誤しているのですが、手詰まりになってここに質問させていただきました。
お忙しいところお手数ですが、どなたかヒントをいただければ幸いです。
※下記のような記事を参考にさせてもらってます。
node.js初心者の私にもとても分かりやすく、助かっています。
https://developer.cybozu.io/hc/ja/articles/202166160-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E7%99%BB%E9%8C%B2-POST-
https://developer.cybozu.io/hc/ja/articles/210014653-Slack%E3%81%8B%E3%82%89kintone%E3%81%B8%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E7%99%BB%E9%8C%B2%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95-AWS-Lambda-%E3%81%A7%E3%81%A4%E3%81%AA%E3%81%90-%E5%BE%8C%E7%B7%A8