Php 通过post从api检索身份验证令牌

Php 通过post从api检索身份验证令牌,php,api,authentication,post,Php,Api,Authentication,Post,我正在尝试构建一个使用SimpleNoteAPI的应用程序,但是我在身份验证部分遇到了问题。我收到一个400错误(请求错误)。 我猜这个问题与SimpleNoteAPI无关,而是我对文档的理解 以下是api所说的: HTTP POST到以下URL: 请求正文应包含以下内容,但以base64编码: 电子邮件=[电子邮件地址]&密码=[密码] 为了清楚起见,您将把email=与用户的电子邮件地址(修剪)连接起来, &密码=,以及用户的密码;然后base64生成的字符串并将其作为 HTTP请求主体。

我正在尝试构建一个使用SimpleNoteAPI的应用程序,但是我在身份验证部分遇到了问题。我收到一个400错误(请求错误)。 我猜这个问题与SimpleNoteAPI无关,而是我对文档的理解

以下是api所说的:

HTTP POST到以下URL:

请求正文应包含以下内容,但以base64编码: 电子邮件=[电子邮件地址]&密码=[密码]

为了清楚起见,您将把email=与用户的电子邮件地址(修剪)连接起来, &密码=,以及用户的密码;然后base64生成的字符串并将其作为 HTTP请求主体。(不要使用标准变量对此请求进行编码 用于发布web表单的编码。我们基本上忽略内容+类型标题 对于此请求,但此处的text/plain最有意义。)

这是我到目前为止的代码:

    $url = 'https://simple-note.appspot.com/api/login';
    $data = array('email' => base64_encode($email), 'password' => base64_encode($password));

    $options = array(
        'http' => array(
            'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
            'method'  => 'POST',
            'content' => http_build_query($data),
        ),
    );
    $context  = stream_context_create($options);
    $result = file_get_contents($url, false, $context);

    var_dump($result);

我认为他们的意思是:

$data = base64_encode(http_build_query(array(
    "email" => $email,
    "password" => $password
));
所以base64编码的是结果字符串,而不是单个部分


至于提出要求。我可以推荐您看看
cURL
,它比
文件获取内容快得多

谢谢!我试试卷发!