web-dev-qa-db-ja.com

で投稿を作成 REST file_get_contentsによるphpのAPI

実際に私は投稿を取得するのに問題はありません。私はphpでREST AP​​Iを使ってfile_get_contentsを使って投稿を作成する必要があります。

これは私のコードです:

json_decode(
    file_get_contents(
        "http://my-site.com/wp-json/wp/v2/posts",
        false,
        stream_context_create(
            array(
                "http" => array(
                    "header"  => "Content-type: text/json\r\n",
                    "method"  => "POST",
                    "content" => json_encode(
                        array(
                            "slug" => "article-2",
                            "title" => "Article 2",
                            "content" => "Created with rest api",
                        )
                    )
                ),
                'ssl' => array(
                    'verify_peer' => false,
                    'verify_peer_name' => false
                )
            )
        )
    ),
    true
);

そして私はこのエラーが出ます:failed to open stream: HTTP request failed! HTTP/1.0 401 Unauthorized

だから私は本当のWPのユーザー名とパスワードで認証をしてみました:

"http" => array(
    "header"  => "Content-type: text/json\r\n"."Authorization: Basic " . base64_encode("$username:$password"),
    "method"  => "POST",
    "content" => json_encode(
        array(
            "slug" => "article-2",
            "title" => "Article 2",
            "content" => "Created with rest api",
        )
    )
)

しかし同じ結果です。

file_get_contentsを使用してphpからREST AP​​Iで投稿を挿入するにはどうすればよいですか?

2
Mattia Merlini

認証を追加するにはプラグインをインストールする必要があります。デフォルトではクッキーとnonceトークンが必要ですが、CLIアプリまたはPHPリクエストの場合は基本認証プラグインをインストールするかOAuth1を使用します。/2

2
Tom J Nowell