ノード内でAxiosを使用して、Foursquareのhttps://api.foursquare.com/v2/photos/add
エンドポイントにJPEG画像を取得しようとしています。POST
JPEG画像を取得しようとしています。私はAxios(およびポストマン)と、いくつかの方法を試してみましたが、常にMissing file upload
の同じエラー応答を受信しました:AxiusでFoursquare Checkinに写真をポストします
{
"meta": {
"code": 400,
"errorType": "other",
"errorDetail": "Missing file upload",
"requestId": "NNNNNNNNNNNNNNNNNNNNN" // not the true requestId
},
"notifications": [
{
"type": "notificationTray",
"item": {
"unreadCount": 0
}
}
],
"response": {}
}
画像をGoogle静的マップのAPIを使用して作成し、Axios GET
リクエストで取得されています
const image = await axios.get(imageURL, {
responseType: "arraybuffer"
});
async
関数でラップされ、正常にバッファを返します。データはBuffer
に読み込まれ、文字列に変換されます。
const imageData = new Buffer(image, "binary").toString();
Here's an example imageData
string。また、文字列をbase64
に変換しようとしました。 checkinId
、oauth_token
とv
のparamsはすべて有効です
const postPhoto = await axios.post(
"https://developer.foursquare.com/docs/api/photos/add?
checkinId=1234&
oauth_token=[TOKEN]&
v=YYYYMMDD",
imageData,
{
headers: { "Content-Type": "image/jpeg" }
}
);
:
この文字列は、フォースクエアエンドポイントへPOST
編です。
私はimageData
をコード化したの値と他のいくつかの解決策をフォーラムで見つけましたが、ここではほとんど(数年前です)、何も動作しませんでした。レスポンスerrorDetailは常にMissing file upload
と表示されます。
問題はPOST
リクエストの構造にある可能性がありますが、画像データの要求/処理が正しくない可能性があります。私がこれをまとめていることを確認する目の第2(または第3または第4)目は、非常に役立つでしょう。