MastodonAPIに先週の日曜日に鞍替え。#脱TwitterAPI有料化

2023.02.10

Logging

おはようございます、TwitterAPIの有料化始まりましたね😖。

企業ではどういう対応を取るのでしょうか。個人で作っていたサービスはサービス閉鎖する人達が増えてきましたね。自分もBotで高知県の企業を応援するサービスを作っていたのだけど、2月5日にサービスを停止しました。

このブログは予約投稿なので、これが配信された時にはTwitterから具体的なAPIの値段などが発表されていると思います。その発表次第ですがBotを再稼働するという選択も残っているのですが、どうなるかは分からないです。

そんな中でPHP言語を使用しMastodonのAPIを使って「投稿だけ」する。コードを書きましたのでお裾分けです。

https://qiita.com/taoka-toshiaki/items/483340a28c03a1828400

php Mastodon.php 'テスト投稿です'
<?php
require "config.php";
class Mastodon{
    const method = "POST";
    const host = "mstdn.jp";
    const endpoint  = "/api/v1/statuses";
    public static function toot($postdata = null)
    {
        if(!is_null($postdata)){
            $data = http_build_query($postdata);
            exec('curl -X POST -d "'.$data.'" --header "Authorization: Bearer '.ACCESSTOKEN.'" -sS https://'.self::host . self::endpoint.'; echo $?',$output);
            var_dump($output);
        }
    }
}
//    「未収載」    -> 'unlisted'
//    「公開」      -> 'public'
//    「非公開」    -> 'private'
//    「ダイレクト」 -> 'direct'
if($argv[1]){
    $postdata = [
        "visibility"=>"public",
        "status"=>strip_tags($argv[1]),
    ];
    Mastodon::toot($postdata);
}
<?php
define('ACCESSTOKEN','xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

ACCESSTOKEN, API, argv, Authorization, Bearer, BOT, echo, endpoint, exec, gt, header, lt, mastodon, null, php define, php require, quot, toot, Twitter, TwitterAPI,

goo-labのひらがな化API雛形を作りました。

2021.05.17

Logging

goo-labひらがな化API雛形を作りましたので、お裾分けです。YOUTUBEで解説している事を抜粋して記載します、まずAPIとはアプリケーションプログラミングインターフェイスの略です。APIを簡単に解説するとAというデータを送るとAのデータを処理して何らかの結果を返却してくれるサービスを言います。

APIとは?|仕組みやどんなAPIあるのかなど、図解を使って3分でわかりやすく解説します

今回のひらがな化APIは漢字の文字をひらがな(カタカナ)に変換して返却してくれるサービスです。自分が作った部分はひらがな化APIのサーバにデータを送信して返却データをキャッチする部分になります。APIというのはどんなAPIも同じようなものですので、一度、理屈を分かってしまうと簡単なものです。

因みにディファインの部分を自分のAPIに変更してお使いください、尚、コマンドラインから実行するように設計しています。

<?php
define("APIKEY","xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");

class Hieagana{
	public function main($str="漢字が混ざっている文章"){
		if(!$str){return false;}
		$headers = array(
			"Content-Type: application/x-www-form-urlencoded",
		);
		// app_id(必須項目)	アプリケーションID
		// request_id	リクエストID
		// 省略時は"labs.goo.ne.jp[タブ文字]リクエスト受付時刻[タブ文字]連番"となります。
		// sentence(必須項目)	解析対象テキスト
		// output_type (必須項目)	出力種別
		// hiragana(ひらがな化)、katakana(カタカナ化)のどちらかを指定してください。
		$params = [
			"app_id"=>APIKEY,
			"sentence"=>$str,
			"output_type"=>"hiragana"
		];

		$curl = curl_init("https://labs.goo.ne.jp/api/hiragana");
		curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
		curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
		curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
		curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($params));
		curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);  
		curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);  
		curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
		
		$output =  (object)json_decode(curl_exec($curl));
		curl_close($curl);

		var_dump($output);

	}
}

if($argv[0]){
	(new Hieagana)->main($argv[1]);
}

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

$params, APIKEY, application, argv, array, decode, false, goo.ne.jp, headers, hiragana, katakana, labs, lt, object, php define, quot, VERIFYHOST, youtube, アプリケーションプログラミングインターフェイス, コマンドライン,