#javascript #node.js #typescript #twitter #twitter-oauth
#javascript #node.js #typescript #Twitter #twitter-oauth
Вопрос:
Я работаю над сценарием для получения домашней временной шкалы пользователя из Twitter.
В настоящее время я использую токен доступа и секрет из своей учетной записи разработчика, и я могу получить только домашнюю временную шкалу только этого пользователя.
Я хочу, чтобы интерфейс заставлял других пользователей авторизовать это приложение, извлекать соответствующие токены и секреты и передавать их на сервер при попадании в конечную точку.
const {
TWITTER_CONSUMER_KEY,
TWITTER_CONSUMER_SECRET,
TWITTER_ACCESS_TOKEN,
TWITTER_ACCESS_TOKEN_SECRET,
} = process.env as any;
class TwitterFeed {
public path = "/tweet";
public router = express.Router();
// this instance is used for app-auth context only
private T = new Twit({
consumer_key: TWITTER_CONSUMER_KEY,
consumer_secret: TWITTER_CONSUMER_SECRET,
access_token: TWITTER_ACCESS_TOKEN,
access_token_secret: TWITTER_ACCESS_TOKEN_SECRET,
});
....
....
private homeTimeline = async (request:Request, reponse:Response, next: NextFunction) => {
try {
// create new Twit instance for this one..
// with request ACCESS_TOKEN and SECRET
const tw = new Twit({
consumer_key: TWITTER_CONSUMER_KEY,
consumer_secret: TWITTER_CONSUMER_SECRET,
// access token from post body
access_token: request.body.access_token,
// access token secret from post body
access_token_secret: request.body.access_token_secret,
});
const tweets: any = await tw.get('statuses/home_timeline', { count: 20 });
const data = tweets.data.map((tweet: any) => {
return {
created_at: tweet.created_at,
id_str: tweet.id_str,
text: tweet.text,
entities: tweet.entities,
retweet_count: tweet.retweet_count,
favorite_count: tweet.favorite_count
};
});
reponse.send(data);
} catch (error) {
next(error);
}
}
Здесь я предполагаю, что интерфейс обрабатывает аутентификацию пользователя в нашем приложении и отправляет access_token
значения и access_token_secret
значения при достижении конечной точки для home Timeline
.
Это правильный способ сделать это?
Комментарии:
1. То, что вы делаете, это нормально, вам просто нужно реализовать вход в систему с помощью Twitter flow и сохранить токен доступа пользователя и секрет токена доступа, и я не вижу этого в вашем коде здесь.
2. @AndyPiper эта часть будет обработана в интерфейсной части.
3. Хорошо, я думаю, я все еще не уверен, в чем ваш вопрос?