新規記事の投稿を行うことで、非表示にすることが可能です。
2024年11月04日
PHPでWEBサービス作る(3)
Twitter(X)に自動投稿してみる
Xって急に言われてもわからないからやはりTwitter(X)呼びが続きそう(2024年11月現在)
今回はPHPのTwitterOAuthを使って自動投稿を制御する
関数とかは簡単だけど、このTwitterOAuthパッケージ(?)を環境に実装するのにめちゃくちゃ苦労した
TwitterOAuthでできること
公式のドキュメント(URL)が参考になる
どうも v2 API が使えるようで、getメソッドとかoauthとか、postあたりを主に使うことになる
今回はテキストの投稿しかしないのでpostメソッドだけ知ってればOK
実装
このAPIを使えるようになるまでがなかなかに苦労したので自分用のメモを兼ねて書く
参照したサイトはこちら(URL)
必要なのは、
- 開発者ポータルで X API Free に登録
- 諸々のトークンを取得
- composerを使ってTwitterOAuthを取ってくる
- コード書く
この開発者ポータルとかいうやつのインターフェースが変更されまくってるのかなんなのか、とにかく使いづらい()
Xさん、スクレイピングされたりBOTたくさん作られたりが嫌らしく、APIの使用範囲とかを文書での提出が求められるしなかなか厄介
今後Freeプランの内容が渋くならないことを祈る
トークンとか諸々を取得したら、TwitterOAuthを使って実際に書いていくのだが、
このTwitterOAuthをどうサーバーに突っ込むかが問題
composerコマンドで引っ張ってくるのが通常の方法なのだが、サーバーの中でコマンド打てるようなプランじゃないし(ケチった弊害)
しょうがないので開発環境のコンテナでcomposer打ってautoloadとかtwitteroauthを取得してこれをそのままサーバに突っ込んだ(強引)
コンテナイメージが最小構成のやつだったのでcomposerに必要なパッケージが不足しまくって苦労(6時間苦戦)
そもそもAPIの公式ドキュメントに書いてあるOpenSSLとcurlすらないしね
正直そんなに容量の厳しいサーバじゃないし、開発環境最小構成じゃなくて良いじゃんとか思わなくもないが
vimとかも入ってないので面倒面倒なのだ
パッケージをcomposerで取得したらあとは楽で、APIの公式ドキュメントとかにしたがってpostメソッドで投稿
一日50投稿までとかの制限があるらしいが、私の使用用途としては試験利用を含めても余裕余裕
意外と自動投稿って簡単なんだなぁ
なお実装合計8時間()
完成品
自動投稿機能の完成品ってなんだよ!
ってことでXアカウントだけ貼っておく
(HappyBirthdayCircle(X))
うまく行けば10月5日から動き出すはず....はず
今後の開発
前回言ってたスマホ対応はどうした→だるい
いつか実装したいねー
Twitter(X)の方の投稿の文章もバリエーション増やしたい(現在1種類のみ)
ま、よかったらサイト(happybirthday-circle.com)の方も投稿の方も見ていってくださいな
【このカテゴリーの最新記事】
-
no image
-
no image
2024年10月21日
PHPでWEBサービス作る(2)
ミニゲームを作る
前回の記事で書いた通り、誕生日関連のゲームを作成していく
サーバ負荷軽減のためJavaScriptのみで作っていく....もはや記事のタイトル詐欺ではあるがしょうがなし
というかこれジャンル:日記で良いのだろうか
どんなのつくるの?
プログラムの力試しの王道、マインスイーパーを作る
そのまま作っても面白くないので、誕生日風にフィールドをケーキにしてみようと思う(???)
どんな知識が必要か
- 円に関する知識
- for文が使える程度の知識
今回はフィールドをケーキにするため、ドットの円をプログラムで表現する
某3Dブロックゲー(Minecraft)の円作成補助プログラムなどがそこら中に掲載されているので、そこから数式などはある程度わかる....Minecraft懐かしい
さっそく作る
必要な要素は、
- 爆弾を配置する要素
- ある点の周囲の爆弾をカウントする要素
などなど
表示はHTMLのtable要素にやってもらった
「マインスイーパー JS」と検索して一番上位に来たコチラのサイトを参考にさせていただいた
大変感謝
苦労したとこ
綺麗な円をつくるのが一番難しかった(苦戦1時間)
今でも納得いかないが、時間をかけてもしょうがないので一旦諦め
あとは右クリックで旗を立てるために、右クリックで発火するコードを書こうとしたが、経験が無いため苦戦
完成品
やはり工程を全部書くのは面倒なので完成品を置いて終わりにする
面倒くさがりがすぎるが、許せ
ベリー・スイーター
コードは自由に見てもらって構わない(script.jsなど)
コメントも書いてない悪悪設計コードだが
左クリックでケーキを食べ、右クリックで旗(キャンドル)を立てる
スマートフォン非対応、正直スマホ対応は面倒なのだ....
今後の開発
やる気が出たらスマホ対応
バグが出たら修正
他のミニゲームの考案
などなど....
よかったら遊んでみて、感想コメントくださいな
2024年10月19日
PHPでWEBサービス作る
なんで?
学校で学んだことの実践のため
どんなWEBサービス?
- 誕生日をアクセス者同士で祝い合う
- SNSなどでそれを報告する
環境構築
開発には Docker Compose を利用
→ Docker コンテナ内で開発
サーバサイド言語には本題の PHP を使う
Webサービスなので御三家(?)HTML、CSS、JaveScript も使う
Webサービスを公開してみたいので、
公開用のサーバとしてロリポップ!レンタルサーバーを契約
(エコノミープラン、3年一括払いで月額99円)
データベースサーバーが使えないことを除けば非常に優秀(大問題)
メール送受信できるのでメールによる2段階認証もできそう
どうやらスケールアップもできるみたい、安心
データベースサーバー使えないので、
データベースは SQLite を使う
今回は直置きとかいう狂気的な使い方をする....
大事なデータを扱うサービスではおとなしくサーバの上位プランを契約するべき
ドメインは XServer ドメイン で取得
(取得1円、更新料金1600円くらい)
新規取得+更新料金を考えるとここが安そう
もちろん時期と各社の開催キャンペーン次第
以上
見てわかるように、PHPが使える環境でなるべく最安を目指した
最初の一年はドメイン更新料金が掛からないのでサーバ代の月額99円のみ、素晴らしい
無料サーバの選択肢もあったが、将来的にスケールアップできなかったりするのでキツイ
とりあえずこれで行ってみる
また、ブログURLである程度察しがつくかもしれないが A8.net に登録してみた
サーバ代金などは勉強代のつもりで払ってはいるが、それはそれで少しでも返ってきたら嬉しいよね
開発環境構築
今回データベースが SQLite を利用予定であり、また使用レンタルサーバにデータベースサーバが無い
そのため Docker Compose ではアプリケーションサーバのみ構築する
アプリケーションサーバのコンテナのベースイメージにはPHPのphp:(version)-apacheを利用
元々はMySQLを利用するつもりだった名残
ほぼベースイメージのままビルドし、コンテナ内で開発
ローカルにポートを繋いでブラウザで表示確認
Docker使うととても便利だね
凄いサーバだと、Dockerのデプロイができるらしい、凄いね
完成品
なんだか書くのが面倒になってきたので完成品を置いて終了とする
https://happybirthday-circle.com/
このような変なブログに辿り着ける人なら、おそらく暇を持て余していると思われる
時間があればぜひともサイトを見ていって欲しい
コーディング作業は3時間くらい
最近の開発は生成AIに聞きながらなので爆速で終わってしまう
技術の進歩って、すげー
(ただし、セキュリティ対策には気をつけようね!)
作業時間の短さに対して、環境構築には5日くらいかかった
主にレンタルサーバ、ドメインの選定で時間を消費
最初はVPSを借りようかなと思ってたが、大したサービスじゃないので普通のレンタルサーバに路線変更
サイト内のアイコン画像は ICOOON MONO 様から取得
本当に助かるサイト、非常に感謝
今後の開発
サイトの子ページに色々誕生日関連のゲームを配置していく予定
サーバに負荷のかからないJavaScriptを利用した単純なものを作る予定
何か気になることがございましたらコメントへ