ブログなどを書いても自信がないからsnsへの投稿などもしないのだけれどgoogle検索が機能しなくなっている今日において私自身もtwitterなどで検索をしそこで見つかった記事を読むなどもしているので検索機能が実装されている適当なsnsにタイトルとurlを投稿するのも良いのかなと思うようになってきている
とはいえブログを書きgit pushしてgithub acrionsにbuildしてもらっている頃には書いていたことなんて忘れてしまうし覚えていたとして面倒でtweetなんてしないだろうし何よりも毎回自意識と戦っていては精神にも悪いのだからgithub acrionsにはついでにtweetまでを行ってもらおうという算段
具体的なコード
https://github.com/slnq/slnq.github.io/blob/main/.github/workflows/main.yml
apiの発行とかで色々と面倒がある
調べても尚も微妙に躓いた点として権限を変更した後にAPI Key and SecretをRegenerateしなくては変更が適応されなかったりするという点
具体的なコードは前述のymlにありテストに用いたコードが下記
import tweepy
client = tweepy.Client(consumer_key="API Key",
consumer_secret="API Key Secret",access_token="Access_Token",
access_token_secret="Access Token Secret")
client.create_tweet(text="Hello World")
BlueSky
アカウント名とパスワードで投稿できるから楽
import atproto
client = atproto.Client(base_url='https://bsky.social')
client.login(login='ACCOUNT NAME UNDER @',password='PASSWORD')
client.send_post('Hello World')
Misskey
当初はノートの作成および削除の権限のみを有効にしていたがうまくいかなかったため全てを有効にしている
from misskey import Misskey
api = Misskey('misskey.io')
api.token = 'TOKEN'
api.notes_create(text='Hello World')%
GitHub Actions
GitHub側にもたせた環境変数は
env:
ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
run: |
python - <<EOF
access_token=os.environ.get("ACCESS_TOKEN")
EOF
のように使えるのだがrun内で定義したものは
run: |
tweet_content="${second_line_content} ${post_url}"
echo "TWEET_CONTENT=$tweet_content" >> $GITHUB_ENV
export TWEET_CONTENT="$tweet_content"
python - <<EOF
tweet_text = f"{os.environ.get('TWEET_CONTENT')}"
EOF
のようにする必要がある気がするexport
の行はいらない気がするのだがいれてからはうまくいったし取り敢えずこのままにしている
apiとかwebサービスとかって調べることばかりに時間がとられて本当に嫌い
一応2024年のうちに自動でtweetしてしまう機能が追加されてしまったから25年は納得できる文章を書けるようにするか納得のラインを下げるかのどちらかが起こる