検索
<< 2024年11月 >>
1 2
3 4 5 6 7 8 9
17 18 19 20 21 22 23
24 25 26 27 28 29 30
最新記事
写真ギャラリー
最新コメント
タグクラウド
カテゴリーアーカイブ
PHP (3)
月別アーカイブ
プロフィール
つくつくつくしさんの画像
つくつくつくし
ぐーたら
日別アーカイブ

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

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

必要なのは、

  1. 開発者ポータルで X API Free に登録
  2. 諸々のトークンを取得
  3. composerを使ってTwitterOAuthを取ってくる
  4. コード書く


この開発者ポータルとかいうやつのインターフェースが変更されまくってるのかなんなのか、とにかく使いづらい()

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 )の方も投稿の方も見ていってくださいな
【このカテゴリーの最新記事】

2024年10月21日

PHPでWEBサービス作る(2)

ミニゲームを作る

前回の記事 で書いた通り、誕生日関連のゲームを作成していく



というかこれジャンル:日記で良いのだろうか

どんなのつくるの?


プログラムの力試しの王道、マインスイーパーを作る

そのまま作っても面白くないので、誕生日風にフィールドをケーキにしてみようと思う(???)

どんな知識が必要か


  • 円に関する知識
  • 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を利用した単純なものを作る予定

何か気になることがございましたらコメントへ
Build a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: