Closed11

X(旧: Twitter)のbot作成について調査・まとめ

ピン留めされたアイテム
まさぴょんまさぴょん

X(Twitter) bot の投稿する記事の選択をランダムに変えたい

  • GAS ✖️スプレッドシートで、楽に実現できることに後から気づく。。。🥺
  • Server費用もかからないのが、つよつよすぐる。。。

GAS×スプレッドシートでTwitterに定期自動投稿する方法

「こんな方におすすめの記事です!」とのこと。

  • 過去に投稿したブログ記事を、ランダムに投稿したい
  • 会社のいろんな情報を定期的にツイートして宣伝したい
  • 「今日の格言」とか「英単語」みたいなツイートを自動で行いたい

https://prtn-life.com/blog/twitter-gas-sheet

GASからTwitter API v2でツイートする【Google Apps Script】

https://prtn-life.com/blog/gas-twitter-api

【GAS×Twitter】Webページのスクレイピング結果を自動投稿する

https://prtn-life.com/blog/gas-twitter-scraping#toc2

まさぴょんまさぴょん

X(旧: Twitter)Dev・API プラットフォームの概要

X の API・Develop機能は、まず3つのカテゴリに分けられる。

  1. Twitter API
  • Twitter 上の会話を理解または構築するために使用できる一連のプログラム エンドポイントです。

  • この API を使用すると、ツイート,ユーザー, スペース, トレンド, リスト, DM, などのリソースを検索、取得、操作、または作成できます。

  1. Twitter広告API
  • Twitter 広告プラットフォームへの直接接続です。
  • Twitter Ads API と統合して、ビジネスのさらなる革新と効率化により Twitter Ads エクスペリエンスを強化します。
  • Twitter Ads API へのアクセスを申請するには、昇格されたアクセス権を持つ開発者アカウントが必要です。
  • このAPIでできること。
    • 広告キャンペーンの作成、スケジュール、管理
    • ターゲティング基準とカスタム オーディエンスを作成する
    • 広告クリエイティブを企画・作成する
    • プル広告分析
  1. Twitter for Websites
  • Twitter for Websites を使用すると、Twitter のライブ コンテンツをソースから直接製品に埋め込むことができます。
  • Web サイトで Twitter を最大限に活用して、フォロワーを増やし、エンゲージメントを高め、ビジネスを成長させましょう
  • できること。
    • Twitter から選んだコンテンツを Web サイトやアプリに取り込みます。
    • 当社のツールを使用して、ウェブ上のストーリーや記事にツイートを埋め込みます。
    • ウェブサイトまたはアプリにツイートのストリームをコンパクトで直線的なビューに含めます。
    • ツイートのタイムラインを構成して、人、トレンド、場所からの最新情報をアプリ内で自動的に表示します。
    • Web サイトやアプリにアクセスした人が Twitter アカウントにアクセスし、フォロワーとコンテンツを共有できるようにします。
    • カードと Twitter ボタンを使用して、Twitter で共有される Web サイトへのリンクを強化します。

[参考・引用]

https://developer.twitter.com/en/docs/platform-overview

https://developer.twitter.com/en/products/twitter-api

まさぴょんまさぴょん

Tweepyを利用して、Xに投稿する

  1. Twitterの開発者アカウントを取得する必要があります。

    • Twitterの開発者ポータルにアクセスし、アカウントを作成します。
    • 新しいアプリケーションを作成し、APIキー, APIシークレットキー, アクセストークン, アクセストークンシークレットを取得します。
    • 取得のための手順は、このサイトを参考にするといいかも。
  2. tweepy を installする。

    • Tweepyは、TwitterAPIを、簡単に使用するためのライブラリです。
pip install tweepy
  1. Pythonプログラムからの投稿・SampleCode Ver. V1
import tweepy

# 認証情報を設定
consumer_key = "YOUR_CONSUMER_KEY"
consumer_secret = "YOUR_CONSUMER_SECRET"
access_token = "YOUR_ACCESS_TOKEN"
access_token_secret = "YOUR_ACCESS_TOKEN_SECRET"

# OAuthとAPIの初期化
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

# ツイートを送信
api.update_status("Hello, world!")
  1. Pythonプログラムからの投稿・SampleCode Ver. V2
import tweepy

# 認証情報
consumer_key = ''
consumer_secret = ''
access_token_key = ''
access_token_secret = ''
bearer_token = ''

print('X Post Test 実行')

# X API V2 対応 の X Client
client = tweepy.Client(
    bearer_token,
    consumer_key,
    consumer_secret,
    access_token=access_token_key,
    access_token_secret=access_token_secret
)

print('client')
print(client)

# 投稿
client.create_tweet(text="自動投稿・Test Hello World!")

[参考・引用]

https://zero-cheese.com/8436/#rtoc-6

https://github.com/tweepy/tweepy

まさぴょんまさぴょん

役にたつ公式ページまとめ

公式のOverview

https://developer.twitter.com/en/docs/platform-overview

Getting started (はじめに)

https://developer.twitter.com/en/docs/twitter-api/getting-started/about-twitter-api

公式チュートリアル

https://developer.twitter.com/en/docs/tutorials

公式Docs

https://developer.twitter.com/en/docs

Authentication Overview (認証方法について概要・まとめ)

https://developer.twitter.com/en/docs/authentication/overview

tweepy の GitHub には、API の V1 と V2 の Exampleがある

https://github.com/tweepy/tweepy/tree/master/examples

まさぴょんまさぴょん

Twitter API のバージョンは、V1.1 と V2 がある。

  • TwitterAPIは、2021年11月から、V1.1からV2に更新されました。
  • ちなみに、API V2を使用するためには、Tweepyは、V4.3.0以降が必要です。

Twitter API V2の特徴

Twitter API V2では、3つのアクセスレベルに分かれています。

  1. Essential
  2. Elevated(高度なアクセス)
  3. Academic Research
  • TwitterAPIは、どのアクセスレベルでも使用可能です。
  • ただし、コードの書き方に、注意点があります。
    • Essentialレベル → V2に対応したコードのみ
    • Elevatedレベル → V2 もしくは V1.1 に対応したコード (どちらでもOK)

◆ Essentialの特徴

  • サインアップ後、すぐに利用可能
  • 無料
  • 50万ツイート/月 の制限
  • API V2のみアクセス可能

◆ Elevatedの特徴

  • 申請が必要
  • 無料
  • 200万ツイート/月 の制限
  • API V2に加え、V1,1にもアクセス可能

◆ Academic Researchの特徴

  • 申請が必要
  • 無料
  • 学術的な使用に限られる
  • 1000万ツイート/月 の制限
  • フルアーカイブ検索・可能

[参考・引用]

https://zero-cheese.com/8436/

まさぴょんまさぴょん

面白いと思った記事など

1. IFTTTを使ったTwitter(現X)ランダム投稿botの作成

  • IFTTTというサービスを知らなかったことと、ちょうど作ろうと思っている「ランダム投稿bot」の作成についてなので、興味を持った。

https://note.com/yamicon/n/nf11e927542a9

https://ifttt.com/explore

2. Twitter Bot予約投稿ツールで自動投稿「Craft Twix」(X botでポスト!有料note版)

  • Twitter Bot予約投稿ツール「Craft Twix」というツールの販売促進記事

https://note.com/noteebook/n/n5cca3d11f1e7

3. X(旧twitter)でbotを作成する方法の覚書

  • pythonとGCP(Google Cloud Platform)で、botを動かしている。

https://www.sakainobuaki.net/2023/08/20/bot/

4. 【X(Twitter) Bot】Xの運用がめんどくさい全ての人へ

  • X(旧Twitter)とOpenAI APIを活用して、Xへの自動投稿ボットを構築
  • 定期実行は、AWSのLambda + EventBridgeというシンプルなアーキテクチャで実現

https://zenn.dev/enterrocken/articles/e6ae6ddcc121d8

まさぴょんまさぴょん

Your client app is not configured with the appropriate oauth1 app permissions for this endpoint. エラー

次のようなCodeで、
tweepy.errors.Forbidden: 403 Forbidden
Your client app is not configured with the appropriate oauth1 app permissions for this endpoint.
というエラーが発生。

tweet.py
client = tweepy.Client(
    bearer_token,
    consumer_key,
    consumer_secret,
    access_token=access_token_key,
    access_token_secret=access_token_secret
)

client.create_tweet(text="自動投稿・Test Hello World!")

解決策:OAuth2.0の設定をする必要がある

  1. User authentication settings を選択する

  1. App permissions で、適切な権限を設定する
  • 今回は、write権限が足らなかった。

  1. Tokenの権限をUpdate(再生成)する

権限をUpdateしたので、Tokenの権限をUpdate(再生成)する必要があります。

よく見ると、
Created with Read, Write, and Direct Messages permissions.
(読み取り、書き込み、およびダイレクト メッセージの権限で作成されました。)
と権限の状況がちゃんと書いてあった。。。
(以前は、読み取り権限のみ。。。)

[参考・引用]

https://twittercommunity.com/t/pythontweepy-oauth1/189150/3

https://zenn.dev/kg0r0/articles/8b1cfe654a1cee

まさぴょんまさぴょん

X(Twitter) bot の定期実行について

現在の状況

  • 毎日、朝(9:00), 昼(12:00), 夕(19:00) の 3 回、投稿(定期実行)をするX(Twitter) bot を作成中。

X(Twitter) bot を定期実行するために必要なもの

  • X(Twitter) bot を定期実行するためには、botを稼働させる置き場と、定期実行プログラムが必要。

  • Pythonを定期的かつ自動で実行するには、Cron設定ができるレンタルサーバー・VPSなどを使うのが、コスパ的にいい選択かな(?)

  • ちなみに、Cronとは、プログラミングの一種で、プログラムをあらかじめ設定したスケジュールに従って定期的に処理を自動実行してくれるものです。

https://e-words.jp/w/cron.html

レンタルサーバーとVPS、どちらを選択するか?

  • レンタルサーバーとVPS(Virtual Private Server)のどちらを選択するかという問題ですが、カスタマイズの自由度や権限などを考えて、VPSを選択しました。
    ( 個人開発用の Deploy Serverが欲しかったので、ちょうどいい🌟)

https://kigyolog.com/article.php?id=519#2-1

VPSの選定について・VPSをどれにするか?

  • どこのVPSがいいのか?

候補は、次の2つ。

  1. Xserver VPS
  2. ConoHa VPS

どちらも評価の高い、レンタルサーバーを運営しており、VPSも提供している。

比較した結果『XServer VPS』に決定!

  • 比較して内容は、次のとおりです。
  1. 料金は『XServer VPS』に軍配が上がる。
  2. 契約期間の選択肢の多さは『ConoHa VPS』に軍配が上がる
  3. 標準機能などは『ConoHa VPS』の方が多そうに見える。
  4. 契約できるServerのGBプランは『XServer VPS』に軍配が上がる。

『XServer VPS』に決定した理由は、何よりも料金を抑えたかったという1点につきます。。。🥺
(運用コストを抑えるのは大事)

『XServer VPS』の料金表

『ConoHa VPS』の料金表

注意点

  • ちょうど『ConoHa VPS』で「年末年始キャンペーン!」が実施されていたので、安く見えますが通常プライスだと、料金は圧倒的に『XServer VPS』に軍配が上がります。
  • 8GBの12ヶ月契約の元料金が『XServer VPS』は3,600円、『ConoHa VPS』は8,083円です。

https://www.conoha.jp/vps/campaign/yearafteryear2023/?btn_id=vps-top--headerBanner_vps-yearafteryear2023

[ おまけ ] GPUサーバーを使いたい場合は『ConoHa VPS』もあり。

『ConoHa VPS』では、まさかの GPUサーバーも提供している。。。

もちろん、高い。。。🥺

https://www.conoha.jp/vps/gpu/?btn_id=vps-top--functions_vps-gpu

[ 参考・引用 Ver. Conoha VPS ]

Conoha VPS Top

https://www.conoha.jp/vps/

Conoha VPS 料金

https://www.conoha.jp/vps/pricing/?btn_id=vps-top--price_vps-pricing

Conoha VPS 機能一覧

https://www.conoha.jp/vps/function/?btn_id=vps-top--functions_vps-function

Conoha VPS GPUサーバー

https://www.conoha.jp/vps/gpu/?btn_id=vps-top--functions_vps-gpu

Conoha VPSにNVIDIA GPUが使える「GPUサーバー」インスタンスが追加

https://www.serversus.work/topics/ffgck1pcnxjypzk1v8an/

NVIDIAのGPUを利用できるConoHa for AIがリリース

https://www.serversus.work/topics/9uai2s98yerqijg7orgx/

[ 参考・引用 Ver. XServer VPS ]

XServer Top

https://vps.xserver.ne.jp/

XServer 料金・仕様一覧

https://vps.xserver.ne.jp/price.php

XServer 機能一覧

https://vps.xserver.ne.jp/feature.php

XServer VPS:特徴(強み弱み)/料金/評判/性能と設定方法

https://vpshikaku.com/xserver-vps/

まさぴょんまさぴょん

面白いと思った記事など Part2

  1. 【コード編集不要】ChatGPTを使用したTwitter(X)ボットで最新情報を自動ツイート【TwitterBotforGpt1.05】
  • ChatGPT ✖️ X(Twitter) Bot という記事が珍しく、面白かった。

https://note.com/modern_echium586/n/nebe1d7ae01f2

  1. Qiita の記事の中からランダムで Twitter に投稿する
  • ここまで手順をちゃんと書いてある記事は珍しいし、この記事を最初に発見したかった。。。

https://qiita.com/Pumila/items/b09b1f8532e129e1b16d

  • 上記の記事の人の Hosting Service の比較記事がありがたい。

https://qiita.com/Pumila/items/f66053143c4255f1de18

  1. 【爆速】自作のTwitterBotを簡単に作るライブラリを作った話【初心者向け】
  • ライブラリの中身はまだ見てないが、確認してみたいと思った。

https://belltree.life/twitterbot-library/

  1. スプレッドシートで予約投稿するTwitter BOTツール: Craft Twix
  • 自動投稿ツールは、やはり需要があるようで、販売している人も見かけた 👀 ✨
  • こういう1度作ったら、あとは売り切り販売のツールを作るのもありだと感じました。

https://booth.pm/ja/items/4941730

https://ebookbrain.net/crafttwix/

https://ebookbrain.net/twitter-scheduled-posting-tool-using-spreadsheets-and-gas//

このスクラップは4ヶ月前にクローズされました