広告枠
本記事のトピック
- 概要
- 問題点・その他
- 公開はGithub上
- アクセストークン発行方法
- 実装内容の簡単な説明
管理人作品宣伝
アークナイツ-必要素材数集計ツール
Webサイト / 最終更新:2022-06-12『アークナイツ』の育成状況を記録し、育成に必要な素材数を集計するページです。オペレータ…
HPで閲覧する
利用素材等の詳細情報
SNSツイート一元化対応(Twitter・Misskey・Mastodon・Bluesky)-公開
概要
SNSツイートを一元化するためのツールを作成しています(古い記事ですが、こちらのページで紹介しているものと同じです)。
こちらが見本です(最新の状態とは限りません)。 投稿先の対象にできるSNSは以下です。
発行方法は以下で記載しますが、Twitterのみ申請が必要になるため、手間がかかります。メインで使っているであろうTwitterが一番足を引っ張ることになってます。
どのSNSに投稿するのかを指定することは可能なので、Twitterに投稿しないようにすることは可能です
こちらが見本です(最新の状態とは限りません)。 投稿先の対象にできるSNSは以下です。
- Twitter(X)
- Misskey
- Mastodon
- Bluesky
発行方法は以下で記載しますが、Twitterのみ申請が必要になるため、手間がかかります。メインで使っているであろうTwitterが一番足を引っ張ることになってます。
どのSNSに投稿するのかを指定することは可能なので、Twitterに投稿しないようにすることは可能です
- Twitter(X)→アクセストークンの発行に申請が必要(承認まで数日かかる)
- Misskey→サイト内でアクセストークン即時発行可能
- Mastodon→サイト内でアクセストークン即時発行可能
- Bluesky→アクセストークン発行不要
問題点・その他
- Twitterで引用ツイートがうまくできない?
- Blueskyで何のエラーもなくツイートされないことがあった
- 複数枚(というより画像の総サイズが大きいと?)画像をアップするとBlueskyでエラーになりやすい
- ツイート投稿後に画像クリアされないので、間違えて同じ画像を二回投稿しかねない
- MastodonとBlueskyでは引用ツイート機能が使えないため返信ツイートになる
公開はGithub上
ソースコード及びpyinstallerで作成したEXEファイルは以下Githubで公開しています。
ソースコード等(Github)
正直エラー周りの処理が弱かったり、Blueskyで投稿に失敗してもエラーが出なかったり、複数枚画像を添付するとBlueskyでエラーになったり、出来が良いとは言えません。あくまで参考や使えたら便利くらいだと思ってください
ソースコード等(Github)
正直エラー周りの処理が弱かったり、Blueskyで投稿に失敗してもエラーが出なかったり、複数枚画像を添付するとBlueskyでエラーになったり、出来が良いとは言えません。あくまで参考や使えたら便利くらいだと思ってください
アクセストークン発行方法
最初にアクセストークンの設定等が必要です。以下にその設定方法を記載します。
以下のように各SNSごとの設定ができるため、ここに取得したアクセストークン等を設定していきます。
「Misskey」と「Mastodon」はインスタンス名(サーバURL)も指定する必要があります。デフォルトでは最もポピュラーなインスタンス名を設定しています。 暗号化処理とかは入ってないのでこのファイルを他の人に渡さないように注意してください。暗号化してても渡したらダメだと思いますが……
全体共通部分の説明
アクセストークンの設定はEXEファイルと同じ階層にある「Tweet_AuthInfo.ini」内に記載します。以下のように各SNSごとの設定ができるため、ここに取得したアクセストークン等を設定していきます。
「Misskey」と「Mastodon」はインスタンス名(サーバURL)も指定する必要があります。デフォルトでは最もポピュラーなインスタンス名を設定しています。 暗号化処理とかは入ってないのでこのファイルを他の人に渡さないように注意してください。暗号化してても渡したらダメだと思いますが……
Twitter(X)での発行方法
Twitterはアクセストークン発行に手続きが必要です。
ここは少々面倒+ボクは既に手続き済のため、すみませんがご自身でググって申請してください。ちなみに申請から承認完了まで数日を要します。
Misskeyでの発行方法
※「Misskey.io」での手順となります。それ以外のインスタンスの場合はURLが異なるため注意が必要です。まずMisskeyにアクセスします。
「設定」→「API」→「アクセストークンの発行」を選択します。
「名前」は任意で良いです。分かりやすい名前にしましょう。
「ノートを作成・削除する」をONにして、右上のチェックを押します。万が一アクセストークンが漏洩してもなるべく被害を抑えるために、権限は最小にしましょう。
アクセストークンが表示されるため、コピーします。この画面を閉じるともう一度再発行する必要があるので注意しましょう。
ここで取得したアクセストークンを上「全体共通部分の説明」の通り、「Tweet_AuthInfo.ini」内に設定して完了です。
Mastodonでの発行方法
※「mastodon.social」での手順となります。それ以外のインスタンスの場合はURLが異なるため注意が必要です。まずMastodonにアクセスします。
「…」→「プロフィール編集」を選択します。
「開発」を選択します。
「新規アプリ」を選択します。
「アプリの名前」は任意で良いです。分かりやすい名前にしましょう。
「投稿の送信」をONにして、「送信」を押します。万が一アクセストークンが漏洩してもなるべく被害を抑えるために、権限は最小にしましょう。
アプリが作成されるため対象のアプリを選択します。
ここで表示されるアクセストークン等を上「全体共通部分の説明」の通り、「Tweet_AuthInfo.ini」内に設定して完了です。
Blueskyでの発行方法
特にトークンの発行手続きは要りません。ログインIDとパスワードを上「全体共通部分の説明」の通り、「Tweet_AuthInfo.ini」内に設定して完了です。
実装内容の簡単な説明
これ以降は開発者向けの説明です。
フォルダは以下の構成になっています。
「CommonFunction.py」は汎用的な処理を、「Tweet.py」はUI部分を担っています。なので、UI部分が気に食わなければその部分を自作し「Tweet_Management.py」を呼び出せば良い、という作りになってます。
各SNSごとに処理は分かれていますが、①認証→②ツイート投稿の順の処理になっているのは同じです。
①認証についてはすべて大体似たり寄ったりなので特筆すべき点はありません。認証しておしまいです。
②ツイート投稿については以下の機能が入っています。
フォルダは以下の構成になっています。
- Commonフォルダ
- - CommonFunction.py → 汎用性の高い処理はここ。
- - Tweet_AuthInfo.ini → 各SNSの認証情報を保持。
- - Tweet_Management.ini → どのSNSを投稿先にするのかを保持。
- - Tweet_Management.py → ツイート関連の処理はすべてここに記載。
- TweetMultiSNSフォルダ
- - fabicon.ico → ウィンドウなどに表示されるアイコン。名前がファビコンなのはこのサイトで使用してるアイコンをそのまま流用しているため。
- - Tweet.py → UI部分。
- - Tweet.spec → pyinstallerでexe化する際に使用。
- - distフォルダ → 書き出したexeファイルで使用される。
- - - fabicon.ico → 同上。
- - - Tweet.exe → exeファイル
- - - Tweet_Management.ini → 同上。
- - - Tweet_Management.py → 同上。
「CommonFunction.py」は汎用的な処理を、「Tweet.py」はUI部分を担っています。なので、UI部分が気に食わなければその部分を自作し「Tweet_Management.py」を呼び出せば良い、という作りになってます。
各SNSごとに処理は分かれていますが、①認証→②ツイート投稿の順の処理になっているのは同じです。
①認証についてはすべて大体似たり寄ったりなので特筆すべき点はありません。認証しておしまいです。
②ツイート投稿については以下の機能が入っています。
- ツイート機能 → 当然ある機能。文字数制限とかは入ってない。
- 返信ツイート機能 → 直前のツイートに返信してツイートできるようにしている(MastodonとBlueskyはできない)。
- 引用ツイート機能 → 引用できるSNSに関しては直前のツイートを引用してツイートできるようにしている。
- 画像アップロード機能 → jpgとpng画像を4枚まで添付できる。Blueskyではなぜか複数枚添付するとエラーが起こりやすい……。
- URLのリンク化機能 → BlueskyのみURLを自動的にリンク化してくれないため、コード内でリンク化処理を入れている。
- ハッシュタグのリンク化機能 → Blueskyのみハッシュタグを自動的にリンク化してくれないため、コード内でリンク化処理を入れている。
- ogp情報の表示機能 → Blueskyのみリンク先のogp情報を自動的に表示してくれないため、コード内で表示処理を入れている。
コメントログ
コメント投稿
広告枠