我正在實現一個使用Facebook的發送API的機器人。根據documentation可以使用請求發送文件。該文檔提供了兩種方法,一種是將URL發送到文件,另一種是上傳文件。我不想上傳文件並給它一個URL,因爲這是一個開放源代碼庫,不希望假設任何有關實現的內容。如何發送文件到Facebook使用npm的請求發送API而無需上傳文件?
我確實想直接上傳文件。上傳該文件的文檔使用cURL
的例子,如下所示:
curl \
-F recipient='{"id":"USER_ID"}' \
-F message='{"attachment":{"type":"file", "payload":{}}}' \
-F [email protected]/tmp/receipt.pdf \
"https://graph.facebook.com/v2.6/me/messages?access_token=PAGE_ACCESS_TOKEN"
我現在的看法是,它應該是這個樣子:
facebook_message.access_token = configuration.access_token;
var fileReaderStream = fs.createReadStream('./sampleData.json')
var formData = {
"recipient": JSON.stringify({
"id":message.channel
}),
"attachment": JSON.stringify({
"type":"file",
"payload":{}
}),
"filedata": fileReaderStream
}
request({
"method": 'POST',
"json": true,
"formData": formData,
"uri": 'https://graph.facebook.com/v2.6/me/messages?access_token=' + configuration.access_token
},
function(err, res, body) {
//***
});
當我運行此我收到以下響應:
{
message: '(#100) Must send either message or state',
type: 'OAuthException',
code: 100,
error_subcode: 2018015,
fbtrace_id: '***'
}
你缺少一些在你的問題中非常重要的東西:究竟哪些不起作用?你調試過嗎?回調中的任何信息?它會被叫嗎? 「這是我的解決方案,但它不起作用」對於計算器來說有點過於寬泛。 – luschn
現在添加。謝謝。 –