今話題のブルースカイ (bsky )でも更新情報をつぶやくようにしました。
最近何かと話題のブルースカイ(ぶるすか)
https://bsky.app/
管理人も先日アカウントを開設しまして
せっかく始めたからには…X(旧ツイッター)がいつなくなってもいいように
更新情報をこちらにも垂れ流そうと。
今日はその手順(というかやり方)を。
---
まあたいしたことはありません。
XのAPIに投げているテキストを
そのままblueskyのAPIに投げるだけです。
「The Sunday Breeze」の環境はPHP8.2でcomposerは使える状態。
(なにそれ?という方は…ググって環境を整えましょう)
blueskyのAPIのインストールはこちらを参考に。
blueskyの自動投稿を作ってみたくなり即興で作りました。(Qiita)
composerでpotibm/phlueskyをインストール。
現時点での最新版が0.3.0っぽいので、
だけでOKでした。
それと、ここからblueskyのアプリパスワードを取得
Xとblueskyの大きな違いは
URLをはっつけたときに自動的にリンクにならないこと。
なのでリンクをポストするときには
リンク先URL・リンク先タイトル・ディスクリプション・画像イメージ(Xでいうカード)
を個別に指定しないとなりません。
これでポストするとXでは

blueskyでは

こんな感じでしょうかね。
---
今日は1日、馬券も買わずに
このblueskyAPIと格闘しておりました。
ホントはね…
名古屋競馬場にキューピッズアローのレースを観戦に行きたかったんだけどね…
3連休とか…新幹線ムリですわ。
しかも明日は夜勤だし。
明後日は気が向けば大井競馬場へ。
雲取賞の観戦ができれば…と思っています。
https://bsky.app/
管理人も先日アカウントを開設しまして
せっかく始めたからには…X(旧ツイッター)がいつなくなってもいいように
更新情報をこちらにも垂れ流そうと。
今日はその手順(というかやり方)を。
---
まあたいしたことはありません。
XのAPIに投げているテキストを
そのままblueskyのAPIに投げるだけです。
「The Sunday Breeze」の環境はPHP8.2でcomposerは使える状態。
(なにそれ?という方は…ググって環境を整えましょう)
blueskyのAPIのインストールはこちらを参考に。
blueskyの自動投稿を作ってみたくなり即興で作りました。(Qiita)
composerでpotibm/phlueskyをインストール。
現時点での最新版が0.3.0っぽいので、
php composer.phar require potibm/phluesky
だけでOKでした。
それと、ここからblueskyのアプリパスワードを取得
Xとblueskyの大きな違いは
URLをはっつけたときに自動的にリンクにならないこと。
なのでリンクをポストするときには
リンク先URL・リンク先タイトル・ディスクリプション・画像イメージ(Xでいうカード)
を個別に指定しないとなりません。
require "vendor/autoload.php";
// TwitterAPIロード
require "twitteroauth/autoload.php";
use AbrahamTwitterOAuthTwitterOAuth;
// BlueSkyAPIロード
use potibmBlueskyBlueskyApi;
use potibmBlueskyBlueskyPostService;
use potibmBlueskyFeedPost;
// ここで投稿するテキストを生成
$status = mb_convert_encoding("書き込む内容", "UTF-8");
/* ****************** ここからTwitter ****************** */
/* OAuthアプリ登録で取得したConsumer keyを設定 */
$consumer_key="こんしゅーまーきー";
/* OAuthアプリ登録で取得したConsumer secretを設定 */
$consumer_secret="こんしゅーまーしーくれっと";
/* OAuthトークン取得プログラムで取得したoauth_tokenを設定 */
$oauth_token="とーくん";
/* OAuthトークン取得プログラムで取得したoauth_token_secretを設定 */
$oauth_token_secret="とーくんしーくれっと";
// TwitterOAuthのインスタンスを生成
$twitter = new TwitterOAuth($consumer_key, $consumer_secret, $oauth_token, $oauth_token_secret);
$twitter->setApiVersion("2");
$req = $twitter->post("tweets", ["text" => $status], true);
/* ****************** ここからBlueSky ****************** */
$bsky_user="sundaybreeze.jp";
$bsky_pass="さっき取得したアプリパスワード";
$api = new BlueskyApi($bsky_user, $bsky_pass);
$postService = new potibmBlueskyBlueskyPostService($api);
$post = potibmBlueskyFeedPost::create($status); // これだけあればテキストはポストできる
if($link!="") { // リンクを張るときにはいろいろ個別で設定
$post = $postService->addWebsiteCard(
$post,
"リンク先URL",
mb_convert_encoding("リンク先のmetaタグに書くtwitter:title", "UTF-8"),
mb_convert_encoding("リンク先のmetaタグに書くtwitter:description", "UTF-8"),
"画像イメージのファイルパス(URLではない)",
);
}
$response = $api->createRecord($post);
// TwitterAPIロード
require "twitteroauth/autoload.php";
use AbrahamTwitterOAuthTwitterOAuth;
// BlueSkyAPIロード
use potibmBlueskyBlueskyApi;
use potibmBlueskyBlueskyPostService;
use potibmBlueskyFeedPost;
// ここで投稿するテキストを生成
$status = mb_convert_encoding("書き込む内容", "UTF-8");
/* ****************** ここからTwitter ****************** */
/* OAuthアプリ登録で取得したConsumer keyを設定 */
$consumer_key="こんしゅーまーきー";
/* OAuthアプリ登録で取得したConsumer secretを設定 */
$consumer_secret="こんしゅーまーしーくれっと";
/* OAuthトークン取得プログラムで取得したoauth_tokenを設定 */
$oauth_token="とーくん";
/* OAuthトークン取得プログラムで取得したoauth_token_secretを設定 */
$oauth_token_secret="とーくんしーくれっと";
// TwitterOAuthのインスタンスを生成
$twitter = new TwitterOAuth($consumer_key, $consumer_secret, $oauth_token, $oauth_token_secret);
$twitter->setApiVersion("2");
$req = $twitter->post("tweets", ["text" => $status], true);
/* ****************** ここからBlueSky ****************** */
$bsky_user="sundaybreeze.jp";
$bsky_pass="さっき取得したアプリパスワード";
$api = new BlueskyApi($bsky_user, $bsky_pass);
$postService = new potibmBlueskyBlueskyPostService($api);
$post = potibmBlueskyFeedPost::create($status); // これだけあればテキストはポストできる
if($link!="") { // リンクを張るときにはいろいろ個別で設定
$post = $postService->addWebsiteCard(
$post,
"リンク先URL",
mb_convert_encoding("リンク先のmetaタグに書くtwitter:title", "UTF-8"),
mb_convert_encoding("リンク先のmetaタグに書くtwitter:description", "UTF-8"),
"画像イメージのファイルパス(URLではない)",
);
}
$response = $api->createRecord($post);
これでポストするとXでは

blueskyでは

こんな感じでしょうかね。
---
今日は1日、馬券も買わずに
このblueskyAPIと格闘しておりました。
ホントはね…
名古屋競馬場にキューピッズアローのレースを観戦に行きたかったんだけどね…
3連休とか…新幹線ムリですわ。
しかも明日は夜勤だし。
明後日は気が向けば大井競馬場へ。
雲取賞の観戦ができれば…と思っています。

このネタへのコメント:
コメントはありません。