taoka3 / threads
Custom Laravel threads package.
Requires
- php: ^8.2 || ^8.3
- laravel/framework: ^10.0 || ^11.0 || ^12.0
This package is not auto-updated.
Last update: 2025-07-26 02:19:52 UTC
README
ライブラリ概要・目的
taoka3/Threads は LaravelプロジェクトからFacebook/MetaのThreads(Threads API)へ投稿するためのライブラリです。このライブラリを使うことで、OAuth認証・アクセストークン管理・投稿の作成・公開を簡単に実装できます。なお利用にはあらかじめFacebook for DevelopersでThreadsアプリの設定を完了しておく必要があります。また、Threads ライブラリ は現時点では公式提供のものではないため、仕様変更や利用制限により動作しなくなるリスクがある点にご注意ください。
インストール方法
以下の手順でインストール・設定します。
-
Composerでパッケージをインストール
composer require taoka3/threads
これにより
taoka3/threads
がプロジェクトに追加されます。 -
設定ファイルを公開
php artisan vendor:publish --tag=threads-config
公開された
config/threads.php
で Threadsアプリの各種設定(アプリID、シークレット、リダイレクトURIなど)を入力します。 -
マイグレーションファイルを公開
php artisan vendor:publish --tag=threads-migrations
公開されたマイグレーションで
threads
テーブル(user_id
,long_access_token
,limit_date
などのカラム)を作成します。 -
データベースマイグレーション実行
php artisan migrate
これにより
threads
テーブルがデータベースに作成されます。
使い方
インストール・設定後は、次のようにメソッドを呼び出してOAuth認証と投稿処理を行います。
-
認証用URLを取得
use taoka3\Threads\Threads; $threads = new Threads(); $authUrl = $threads->authorize();
authorize()
は認証画面へリダイレクトするためのURL文字列を返します。生成したURLへユーザーを遷移させ、ログイン・権限付与を行ってもらいます。 -
コールバック処理(アクセストークン取得)
$threads = new Threads(); $threads->redirectCallback() ->getAccessToken() ->changeLongAccessToken() ->save();
リダイレクト先でクエリパラメータの
code
を取得し、getAccessToken()
で短期アクセストークンを取得します。続けてchangeLongAccessToken()
によりロングアクセストークンに変換し、save()
でデータベースに保存します。 -
投稿作成・公開
$threads = new Threads(); $threads->getlongAccessTokenAndUserId() // DBから user_id と long_access_token を読み込む ->post('投稿するテキスト', $imageUrl, 'IMAGE') ->publishPost();
post()
では投稿テキスト(と必要に応じて画像URL)を指定し、publishPost()
で実際にThreads上に投稿を公開します。投稿成功時はJSONレスポンス(投稿IDなど)が出力されます。 -
アクセストークンの更新
if ((new Threads())->checkRefreshLongAccessToken()) { (new Threads()) ->getlongAccessTokenAndUserId() ->refreshLongAccessToken() ->setUpdate(); }
checkRefreshLongAccessToken()
は保存済みトークンの有効期限が近い場合にtrue
を返します。必要に応じてrefreshLongAccessToken()
で新しいロングトークンを取得し、setUpdate()
でDBを更新します。
各メソッドは fluent インターフェイスになっており、チェーンで呼び出し可能です。例えば authorize()
は認証URL文字列を返し、publishPost()
実行時は投稿IDを含むレスポンスが得られます。
Laravelプロジェクトへの組み込み
このパッケージはLaravelのサービスプロバイダが自動的に登録されるため、特別な設定は不要です。上記の vendor:publish
により config/threads.php
が生成されるので、そこで以下のキーに値を設定してください:
threads.appid
– ThreadsアプリのApp IDthreads.apiSecret
– アプリのAPIシークレットthreads.redirectUri
– 認証後に戻ってくるコールバックURIthreads.endPointUri
– APIエンドポイント(例:https://graph.threads.net/
)threads.version
– APIバージョン(例:v1.0/
など)
これらの設定値は Facebook for Developers で作成したThreadsアプリの情報に基づいて入力します。先述のマイグレーション実行により threads
テーブルが作成され、認証ユーザーIDとロングトークンを保存できるようになります。
対応バージョン・依存ライブラリ
- PHP: ^8.2 または ^8.3
- Laravel: ^10.0, ^11.0, ^12.0
- 依存拡張: cURL(
ext-curl
)、allow_url_fopen
を有効化してください。 - ライセンス: MIT
パッケージの composer.json
に記載された要件に基づきます。
注意事項
- Threads ライブラリ は公式に公開されているものではないため、Meta/Threads側の仕様変更や制限により動作しなくなる可能性があります。利用時は最新のFacebook開発者ドキュメントを参照してください。
- 本ライブラリ内でも述べたように、ロングアクセストークンは約60日で期限切れになるため、定期的な更新処理が必要です(
checkRefreshLongAccessToken()
を参照)。 - パッケージはデータベースへの直接書き込みを行うため、エラー処理や権限周りの例外を適切に実装してください。
ライセンス
本ライブラリは MITライセンス のもとで公開されています。ソースコードは自由に改変・再配布できます。
参考: パッケージの詳細情報は Packagist: taoka3/threads および README(日本語) を参照してください。