Ionic4 / Angular在Twitter上发布推文

Mit*_*tch 8 twitter http ionic-framework angular

我正在开发一个APP,我希望用户点击一个按钮并向其时间轴发送一条推文。有几种使用Node.JS和Angular做到这一点的已知方法,但是我正在寻找一种解决方案,以在不运行Node Server的情况下实现我想要的功能。

有没有一种方法可以将Twitter API嵌入您的IONIC / Angular APP。而且我没有在寻找Ionic插件TwitterConnect,因为它没有POST方法。

编辑

这是twitter示例,但是我将如何在Angular中实现呢?

curl -XPOST 
  --url 'https://api.twitter.com/1.1/statuses/update.json?status=hello' 
  --header 'authorization: OAuth
  oauth_consumer_key="oauth_customer_key",
  oauth_nonce="generated_oauth_nonce",
  oauth_signature="generated_oauth_signature",
  oauth_signature_method="HMAC-SHA1",
  oauth_timestamp="generated_timestamp",
  oauth_token="oauth_token",
  oauth_version="1.0"'
Run Code Online (Sandbox Code Playgroud)

这是 @GonzaloNicolás建议的链接https://developer.twitter.com/zh-CN/docs/tweets/post-and-engage/api-reference/post-statuses-update有人可以协助我提供文档或一些编码示例。

小智 6

对不起,我的英语,我来自阿根廷。您的解决方案是POST状态/更新API,
该解决方案来自twitter,如果进行搜索,您将发现假设使用auth时必须发送的所有文档和结构

链接:https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/post-statuses-update


Mit*_*tch 5

据我了解,您可以使用简单的节点服务器访问Twitter API。我原本以为这是令人生畏的,但实际上没有什么可强调的。

您可以通过创建项目目录来启动节点程序

mkdir server
cd server
npm init
touch server.js
Run Code Online (Sandbox Code Playgroud)

并安装twit api并将js表达到您的节点项目中

npm install twit body-parser cors express
Run Code Online (Sandbox Code Playgroud)

在Twitter开发人员页面https://apps.twitter.com/上创建您的Twitter应用程序

然后将此代码复制并粘贴到您需要在节点应用程序中创建的server.js文件中,只需创建一个名为server.js的文件即可完成此操作

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'));
Run Code Online (Sandbox Code Playgroud)

然后在您的角度项目中,只需复制并粘贴此代码即可

api_url = 'http://localhost:3000';

  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.tweet('This is app code')
            .pipe(first())
            .subscribe(
                data => {
                    console.log('yes')
                },
                error => {
                  'failed'
                });
}
Run Code Online (Sandbox Code Playgroud)