PHPにて Bluesky API 投稿
#WebAPI連携 #Bluesky

created: 2024/06/16, modified: 2024/07/24

標準のサムネイル 2024-06

potibm/phlueskyライブラリを使用すると、PHPで簡単にBlueskyに投稿することができます。メンション、リンク、ハッシュタグを解析し、投稿に追加することができるので、よりリッチなコンテンツをBlueskyに投稿することができます

Composerから potibm/phluesky をインストール

まず、Composerを使用してpotibm/phlueskyライブラリをインストールします。以下のコマンドを実行します。

2024-05-24 にバージョン0.4.0が公開され、ハッシュタグなどが解析できるようになったようです。

実際のコード(メンション、リンク、ハッシュタグを解析)

APIの設定

BlueskyApiクラスを使用して、BlueskyのAPIエンドポイントとAPIキーを設定します。ここで、'nick.bsky.social'はBlueskyのユーザー名、'abcd-efgh-ijkl-mnop'はAPIキーです。

サービスの作成

BlueskyPostServiceクラスをインスタンス化し、BlueskyApiオブジェクトを渡します。このサービスを使用して投稿を作成し、Blueskyに送信します。

投稿の作成

Post::createメソッドを使用して、新しい投稿を作成します。ここでは、メンション、リンク、ハッシュタグを含むテキストを設定しています。

メンション、リンク、ハッシュタグの解析

BlueskyPostServiceのaddFacetsFromMentionsAndLinksAndTagsメソッドを使用して、投稿テキスト内のメンション、リンク、およびハッシュタグを解析し、投稿に追加します。これにより、Blueskyに正しくメンションやリンク、ハッシュタグが表示されます。

投稿の実行

BlueskyApiのcreateRecordメソッドを使用して、投稿をBlueskyに送信します。このメソッドは投稿の内容をAPIに送信し、レスポンスを返します。レスポンスには投稿の詳細情報が含まれます。

画像の追加

Blueskyに画像を投稿することもできます。addImageメソッドを使用し、画像を投稿に追加します。

画像は外部のサーバーにあるものではだめ?

Bluesky APIでは、画像は直接アップロードされる必要があり、外部のURLから直接リンクすることはサポートされていません。そのため、投稿に含めたい画像は、サーバー上のローカルファイルとして扱う必要があります。

ウェブサイトカードの埋め込み

addWebsiteCardメソッドを使用して、外部のウェブサイトリンクをカード形式で投稿に埋め込むこともできます。以下のコード例を参照してください。

まとめ

potibm/phlueskyライブラリを使用すると、PHPで簡単にBlueskyに投稿することができます。メンション、リンク、ハッシュタグを解析し、投稿に追加することができるので、よりリッチなコンテンツをBlueskyに投稿することができます。