JSONでフォーマットされたユーザー名とパスワードを含む.txtファイルを使用して認証メソッドに投稿することで、PHPを使用してWebサービスを認証しようとしています。ユーザー名とパスワードを使用してJSON形式のテキストファイルを作成しますか?
これは機能しません。私はなぜ難しくないのか分かりません。
私が使用しようとしているコードは次のとおりです。まず、投稿を行うために使用している関数があります。次に、データファイルの変数と、認証サービスのURLの変数を作成します。
<?php
function do_post_request($url, $data, $optional_headers = null)
{
$params = array('http' => array(
'method' => 'POST',
'content' => $data
));
if ($optional_headers !== null) {
$params['http']['header'] = $optional_headers;
}
$ctx = stream_context_create($params);
$fp = @fopen($url, 'rb', false, $ctx);
if (!$fp) {
throw new Exception("Problem with $url, $php_errormsg");
}
$response = @stream_get_contents($fp);
if ($response === false) {
throw new Exception("Problem reading data from $url, $php_errormsg");
}
return $response;
}
// Let's get logged in and get an authkey
$url = 'http://service.com/auth';
$data= 'creds.txt';
$authkey = do_post_request($url, $data);
print_r($authkey);
?>
私creds.txtファイルのテキスト:
{ "AUTH":{ "ユーザー名": "myusernameと指定"、 "パスワード": "mypasswordという" }}
私は何が間違っていますか?無効なデータエラーが発生しています。テキストファイルの完全なURLを使用する必要がありますか?テキストファイルが正しくフォーマットされていませんか?サービスの
ドキュメントが唯一の私が必要と言う:
「ユーザー名とパスワードを使用してJSON形式のテキストファイルを」
どのラインでエラーが表示されますか?さらに、テキストファイルの内容が文字列として読み込まれ、jsonとして解析されないことがあります。 –
サービスは 'application/json'ヘッダを除いているのでしょうか? – Nadh
"エラー": "ユーザー名またはパスワードが要求に設定されていません"、 "error_description": "ユーザー名\ /パスワード値が無効です"、 "error_code": "INVALID_LOGIN" – bflora2