【发布时间】:2026-01-16 10:35:01
【问题描述】:
我有一个正在运行的节点服务器。并将帖子发送到 Twitter 时间轴,我有一个 Ionic/Angular 应用程序,它使用节点服务器并发送消息。
但是,问题是在节点服务器中,我的用户 Twitter 帐户信息是硬编码的,我想知道如何发送从 Twitter 连接插件获得的用户详细信息。
这是我的节点服务器
const express = require('express');
const Twitter = require('twit');
const app = express();
const client = new Twitter({
consumer_key: '...',
consumer_secret: '...',
access_token: '...',
access_token_secret: '...',
});
app.use(require('cors')());
app.use(require('body-parser').json());
app.post('/post_tweet', (req, res) => {
tweet = req.body;
client
.post(`statuses/update`, tweet)
.then(tweeting => {
console.log(tweeting);
res.send(tweeting);
})
.catch(error => {
res.send(error);
});
});
app.listen(3000, () => console.log('Server running'));
我的 angular/ionic 应用程序中的 Twitter 服务
export class TwitterserviceService {
api_url = 'http://localhost:3000';
constructor(private http: HttpClient) { }
tweet(tweetdata: string) {
return this.http.post<any>(`${this.api_url}/post_tweet/`, {status: tweetdata})
.pipe(map(tweet => {
alert("tweet posted")
return tweet;
}));
}
}
这是我向节点服务器发送推文的角度代码
sendTweet() {
this.api.tweet('sent from phone')
.pipe(first())
.subscribe(
data => {
console.log('yes')
},
error => {
'failed'
});
}
连接插件
twitterLogin() {
this.twitter.login().then((res: any) => {
localStorage.setItem('twitterLogin', "true");
this.firebaseService.twitterDetail(this.userId, res);
this.twitterUser = true;
if(this.twitterUser == true){
this.twitter.showUser()
.then(user => {
console.log("User: " + user +
'username ' + res.username+ " " + user.username);
});
}
}, (err: any) => {
alert('error: ' + err);
});
}
【问题讨论】:
-
你能举一个“硬编码”用户的例子吗?
-
最上面的代码是硬代码(我输入客户端密钥等)详细信息到我的节点服务器。这样当用户想要向 twitter 发布消息时。它将消息发布到用户的帐户,而不是已硬编码到节点服务器中的帐户
-
您需要用户授权代表他/她发帖。这通常需要 oauth 样式的身份验证。您的应用程序应在 Twitter 中注册。要执行授权,请参考以下过程 - developer.twitter.com/en/docs/basics/authentication/overview/… 该过程已在以下 URL 中进行了描述。检查应用程序用户身份验证部分developer.twitter.com/en/docs/basics/authentication/overview/…
标签: javascript node.js angular ionic-framework