Получить токен аутентификации из API по почте

Я пытаюсь создать приложение, использующее API-интерфейс simplenote, но у меня возникают проблемы с частью аутентификации. Я получаю ошибку 400 (неверный запрос). Я предполагаю, что эта проблема не связана с простым API, это скорее мое понимание документации.

Вот что говорит апи:

HTTP POST по следующему URL-адресу: https://simple-note.appspot.com/api/login< /а>

Тело запроса должно содержать это, но в кодировке base64: email=[адрес электронной почты]&password=[пароль]

Чтобы было ясно, вы соедините email= с адресом электронной почты пользователя (обрезанным), &password= и паролем пользователя; затем base64 результирующую строку и отправьте ее как тело HTTP-запроса. (Не кодируйте этот запрос, используя стандартную кодировку переменных, используемую для веб-форм, отправляемых с помощью POST. Мы в основном игнорируем заголовок Content+Type для этого запроса, но 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);

person Inzajt    schedule 17.01.2014    source источник


Ответы (1)


Я думаю, что они имеют в виду:

$data = base64_encode(http_build_query(array(
    "email" => $email,
    "password" => $password
));

Таким образом, base64 кодирует результирующую строку, а не отдельные части.

Что касается оформления запроса. Я могу порекомендовать вам взглянуть на cURL, он намного быстрее, чем file_get_contents.

person Halcyon    schedule 17.01.2014
comment
Спасибо! Попробую cURL! - person Inzajt; 18.01.2014