0 と 1 の世界の見習い探検家

タグ:API

こんにちは、
立て続けに備忘録です。
WordPress 環境を社内のイントラ環境や個人 PC 内の検証環境でお使いの方向けの記事です。

※この記事で対象としている WordPress のバージョンは 6.4.2

WordPress には REST API の機能があり、コールすることで「記事の投稿」「ファイルのアップロード」など様々な操作を行うことが出来ます。
利用するためには、WordPress の管理画面で「アプリケーションパスワード」を発行する必要がありますが、HTTPS でない環境の場合、このアプリケーションパスワードの発行機能がブロックされており、使えません。
※アプリケーションパスワードの詳細についてはぐぐってください


20240123-201_WP_APWBLOCKED

アプリケーションパスワードを使用すると、実際のパスワードを入力しなくても XML-RPC や REST API などの非対話型システムを介した認証が可能になります。アプリケーションパスワードは簡単に取り消すことができます。サイトへの従来のログインには使用できません。

アプリケーションパスワードには HTTPS が必要ですが、このサイトでは有効ではありません。

これが開発用サイトであれば、適宜、環境タイプを設定して、アプリケーションパスワードを有効化できます。

まぁ当然といえば当然です。
暗号化されてない環境でアプリケーションパスワードを利用するということは、セキュリティ上の重大なリスクがあります。

ただ、社内のイントラ環境やローカルに立てた検証環境などで利用している WordPress で REST API やアプリケーションパスワード機能を使いたい場合もあるかと思います。
その方法のご紹介です。

インターネットに公開されている環境の WordPress ではこの手順は実施しないでください。セキュリティ上のリスクになります。


wp-config.php を編集する


20240123-202_WP_wpconfig

wp-config.php とは WordPress のインストール ディレクトリ内にある php ファイルです。
このファイルに後述の行を追加することで非 HTTPS 環境でもアプリケーションパスワードの発行を受けることができるようになります。

まずは wp-config.php のバックアップを取ってください (破損すると環境自体が壊れるので)

wp-config.php をテキストエディタで開きます。
Windows の場合、改行コードを壊さぬようテキストエディタは VSCode あたりを利用すると安全かもしれません。

そして、一番末尾までスクロールし、
require_once ABSPATH . 'wp-settings.php';
の 1 つ手前の辺りに次の内容を追加してください

define( 'WP_ENVIRONMENT_TYPE', 'local' );
末尾のセミコロンも忘れないでください。
下記のような感じで OK です。

20240123-203_WP_lineadded

上書き保存を行い、WordPress の管理画面のアプリケーションパスワード発行の画面のページをリロードすると、「アプリケーションパスワードには HTTPS が必要ですが、このサイトでは有効ではありません。~~」のメッセージが消え、下記のようにアプリケーションパスワードが発行可能になっていることを確認できると思います。

20240123-204_WP_enabled

お疲れ様です。
WordPress の REST API をお楽しみください。


【おまけ】WP_ENVIRONMENT_TYPE の設定が反映されない!?

下記のコードを追加してもアプリケーションパスワードが有効にならないことがあります。
define( 'WP_ENVIRONMENT_TYPE', 'local' );

私が遭遇したケースでは、上記のコードの挿入位置がよくありませんでした。
最初 wp-config.php の末尾に記載をしていたのですが、その際は反映がなされませんでした。
wp-settings.php を require_once する前に define しないと正しく反映されないようです。
ご注意ください。

どうもご無沙汰しております、青砥です。
この度初めて NuGet でパッケージを公開してみました。

その名も「MisskeySharp」、、






最近 Twitter の代替 SNS が再び勢い付いており、そのうちの一つが Misskey です。
Misskey は個人により開発されているようですが、そのシュールで豊富なリアクション スタンプの種類、また 1 投稿でかなりの長文が打てるところが特長です。

さて、そんな Misskey でこの度とある bot を公開したいと思い、.NET で開発いたしました。
もともとは Twitter の bot として動かしていたものなのですが、イロマス政権の重大製作の 1 つ「Twitter API 有償化」などの影響を受け、Twitter では運用できなくなってしまったものです。

Misskey は .NET 用のクライアントとして Misq という高機能なライブラリがすでに提供されているようでしたが、ターゲット フレームワークが .NET Framework 4.x で止まっており、.NET 6 のプロジェクトから利用を試みたところ、.NET 5 以降ではどうもうまく動かなくなってしまっているようでした。

そこで、私自身の Misskey API の勉強も兼ね、.NET Standard で新たにライブラリを開発することにいたしました。


現状のバージョンは開発中途版という扱いで、標準機能で利用できるものも主にノートの投稿、検索、フォロワー / フォロイーの一覧取得程度です。
今後、機能をどんどん増やしていきたいと思います。

Misskey の API はとても単純明快で、叩きやすい造りになっているところが面白いなと思いました。
みなさんもいかがでしょうか。

このページのトップヘ