Мне нужно отправить несколько изображений через Facebook GraphAPI. Эти изображения хранятся в облачном хранилище Google и публикуются с помощью подписи URL всего на один день. Эти подписанные URL-адреса отклоняются GraphAPI.
Я попробовал то, что сказал об использовании подписанного URL-адреса (подписанные URL-адреса генерируются модулем Node JS Google Cloud Storage), и я также использовал общедоступный URL-адрес: "https://encrypted -tbn0.gstatic! NodeJS использует модуль запрос-обещание. Вот код запроса:
const request_body = {
recipient: {
id: 'a facebookID goes here'
},
message: JSON.stringify({
metadata: `{ "messageUUID": "a uuid goes here" , "fileID": "a fileID goes here", "fileContentType": "a content type goes here"}`,
attachment: {
type: 'image',
payload: {
is_reusable: true,
url: 'a url goes here'
}
},
});
};
let options = {
uri: 'https://graph.facebook.com/v5.0/me/messages',
qs: { access_token: 'an access token goes hete' },
method: 'POST',
json: request_body
};
Когда URL является SignedURl из Google Cloud Storage, я получаю сообщение об ошибке:
StatusCodeError: 400 - {"error":{"message":"(#100) Upload attachment failure.","type":"OAuthException","code":100,"error_subcode":2018047}}
Когда URL является общедоступным URLизображение загружено правильно и его можно увидеть в диалоге Facebook Messenger.
Я не знаю, что еще делать. Кто-нибудь что-то получил?