在php中使用rest API创建带有FILE_GET_CONTENTS的发布

时间:2017-08-29 作者:Mattia Merlini

事实上,我在发帖方面没有问题。我需要在php中使用REST API创建帖子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",
        )
    )
)
但结果是一样的。

如何使用REST API从php插入帖子file_get_contents?

1 个回复
SO网友:Tom J Nowell

您需要安装一个插件来添加身份验证,默认情况下,它需要一个cookie和一个nonce令牌,但对于CLI应用或PHP请求,您需要安装一个基本的身份验证插件或使用OAuth1/2

结束

相关推荐

Wp-json API:从管理模式点击API链接时未登录

我有一个自定义帖子类型的元框,其中有一个链接。此链接指向wp json rest API中的端点。在我使用的rest API的端点上current_user_can 验证用户是否已登录。这是端点,只是更改了名称:register_rest_route( \'myapi\', \'/download_file/\', array( \'methods\' => \'GET\', \'callback\' => \'file\', \'perm