使用用户上下文 Auth 将 AWS Lambda POST 节点连接到 Twitter
Node AWS Lambda POST to Twitter with User context Auth
我正在尝试在 AWS 上创建一个节点 lambda,它将在用户上下文中通过 twit
npm 模块向 Twitter API 进行身份验证。这样 lambda 就可以上传 GIF,然后在上传后,使用返回的 media_id 在用户的时间线上发推文。
我已经创建了一个 Twitter 应用程序等。它可以工作,但是它将推文发布到与该应用程序关联的帐户,而不是用户的时间线。这是我的整个 lambda 代码:
const fs = require('fs');
const Twit = require('twit');
var T = new Twit({
consumer_key: '...',
consumer_secret: '...',
access_token: '...',
access_token_secret: '...'
});
module.exports.oauth = (event, context, callback) => {
var b64content = fs.readFileSync('./testGIF.gif', { encoding: 'base64' })
// POST the media to Twitter
T.post('media/upload', { media_data: b64content }, function (err, data, response) {
// assign alt text to the media, for use by screen readers etc
var mediaIdStr = data.media_id_string
var altText = "Alt text"
var meta_params = { media_id: mediaIdStr, alt_text: { text: altText } }
T.post('media/metadata/create', meta_params, function (err, data, response) {
if (!err) {
// reference the media and post a tweet (media will attach to the tweet)
var params = { status: 'Testing, GIF Sharing', media_ids: [mediaIdStr] }
T.post('statuses/update', params, function (err, data, response) {
console.log(data)
})
}
})
})
const response = {
statusCode: 200,
};
callback(null, response);
};
如有任何帮助,我们将不胜感激!
您目前正在为与该应用关联的用户帐户使用令牌。
您需要代表用户获取 OAuth 令牌,并使用它对 Twitter 的 API 进行授权调用。
您需要先为您的 Twitter 应用程序创建一个网页,然后执行以下任一操作:
- 实施 Twitter 登录以直接捕获 OAUTH 令牌
- 实施三足授权以直接获取 OAUTH 令牌
- 使用 PIN-based authorization
为用户捕获 OAUTH 令牌后,您可以将其传递给您的 lambda 以用于初始化 Twit
客户端。
我正在尝试在 AWS 上创建一个节点 lambda,它将在用户上下文中通过 twit
npm 模块向 Twitter API 进行身份验证。这样 lambda 就可以上传 GIF,然后在上传后,使用返回的 media_id 在用户的时间线上发推文。
我已经创建了一个 Twitter 应用程序等。它可以工作,但是它将推文发布到与该应用程序关联的帐户,而不是用户的时间线。这是我的整个 lambda 代码:
const fs = require('fs');
const Twit = require('twit');
var T = new Twit({
consumer_key: '...',
consumer_secret: '...',
access_token: '...',
access_token_secret: '...'
});
module.exports.oauth = (event, context, callback) => {
var b64content = fs.readFileSync('./testGIF.gif', { encoding: 'base64' })
// POST the media to Twitter
T.post('media/upload', { media_data: b64content }, function (err, data, response) {
// assign alt text to the media, for use by screen readers etc
var mediaIdStr = data.media_id_string
var altText = "Alt text"
var meta_params = { media_id: mediaIdStr, alt_text: { text: altText } }
T.post('media/metadata/create', meta_params, function (err, data, response) {
if (!err) {
// reference the media and post a tweet (media will attach to the tweet)
var params = { status: 'Testing, GIF Sharing', media_ids: [mediaIdStr] }
T.post('statuses/update', params, function (err, data, response) {
console.log(data)
})
}
})
})
const response = {
statusCode: 200,
};
callback(null, response);
};
如有任何帮助,我们将不胜感激!
您目前正在为与该应用关联的用户帐户使用令牌。
您需要代表用户获取 OAuth 令牌,并使用它对 Twitter 的 API 进行授权调用。
您需要先为您的 Twitter 应用程序创建一个网页,然后执行以下任一操作:
- 实施 Twitter 登录以直接捕获 OAUTH 令牌
- 实施三足授权以直接获取 OAUTH 令牌
- 使用 PIN-based authorization
为用户捕获 OAUTH 令牌后,您可以将其传递给您的 lambda 以用于初始化 Twit
客户端。