lineline
@lineline (性欲 つよし)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

GASでRSSを取得してTwitterにbotで自動投稿したいが上手くいきません。

質問

タイトルの通り以下のGASにてRSSを取得してTwitterに自動投稿するべく以下のようなプログラムを書きましたが上手くいきませんでした。

コード

//認証用インスタンスの生成
  var twitter = TwitterWebService.getInstance(
  'XXXXXXXXXX',//API Key
  'XXXXXXXXXXXXXXXXXXXXXXX'//API secret key
);

function autoTweet() {
// feedURL
var feedURL = 'XXXXXXXXXXXXXXXXX';
  // フィードを取得
  var response = UrlFetchApp.fetch(feedURL).getContentText();
  var xmldocs = XmlService.parse(response);
  var root = xmldocs.getRootElement();
  // XMLをパース
  var channel = root.getChild('channel');
  var items = channel.getChildren('item');
  
  for(var i = 0; i < items.length; i++) {
    var description = items[i].getChild("description").getText(); // 記事タイトル
    var url = items[i].getChild("link").getText(); // 記事URL
    
    // タイトルの文字数が多かったら適当な文字数で切り詰め
    if(description.length > 280) {
      description = description.substring(0, 279) + '…';
    }
    
    // 投稿するテキストをつくる
    var tweetText = description + ' ' + url;
        
    // 投稿
    var service  = twitter.getService();
    var endPointUrl = 'https://api.twitter.com/1.1/statuses/update.json';
      var response = service.fetch(endPointUrl, {
    method: 'post',
    payload: {
      status: tweetText
    }
      });
  }
}


エラー内容

Exception: Request failed for https://api.twitter.com returned code 403. Truncated server response: {"errors":[{"message":"You currently have Essential access which includes access to Twitter API v2 endpoints only. If you need access to this endpo... (use muteHttpExceptions option to examine full response)

いろいろなページを参考にして書いてみましたがイマイチ上手く動かず、どなたかご教示頂けたら幸いです。

0

1Answer

Since the v1.1 API is not available in “Essential” - you have to use the v2 API only: tweepy.Client — Twitter API v2 Reference — tweepy 4.4.0 documentation

0Like

Your answer might help someone💌