我正在使用Twitter API通过Node.JS发送直接消息,效果很好;但是,它需要一个不方便的用户ID。我创建了另一个名为getTwitterID
的函数,以在给定用户screen name
后返回用户ID。该函数与API配合良好,并且能够访问其用户ID,但是在返回时,它声称未定义。我肯定有一个简单的解决方法,但是我很沮丧。
这是错误,只是说我输入的ID未定义:
{ errors:
[ { code: 214,
message:
'event.message_create.target.recipient_id: field is required' } ] }
为了方便阅读,我突出显示了相关代码。
第一个功能:
export async function messageTwitter(message, recipient){
const id = await getTwitterID(recipient); //Getting ID value <br/>
console.log(id) //prints undefined
client.post('direct_messages/events/new', {
event: {
type: "message_create",
message_create: {
target: {
recipient_id: id
},
message_data: {
text: message
}
}
}
}, (event, error)=>{
console.log(event);
console.log(error)
})
}
第二功能:
export async function getTwitterID(rec) {
client.get('users/show', {
screen_name: rec
}, (error, response) => {
if (error) {
console.log(error)
}
console.log(response.id_str) //prints the correct id <br/>
return response.id_str //returning id for use in other function
})
}
当在第二个函数中检索正确的ID时,我不确定该函数为什么在第一个函数中返回undefined
。