2016-12-23 3 views
1

У меня есть переменная вместо ключа-токена. Когда я использую переменную, ответ пустой. Когда я использую ключ-токен, он возвращает ответ. Я убедился, что другие переменные, которые я установил, не были проблемой. Переменная проблема является один я пометил $ token_jsonЯвляется ли переменная допустимой на предъявителя авторизации вместо токена?

Мой сайт https://geolyft.com

<!DOCTYPE html> 
<html> 
<head> 
</head> 
<body> 

<?php 
$ltt = $_POST['lat']; 
$lng = $_POST['lng']; 
$token_url = "https://geolyft.com/authentication.php"; 
$token_json = file_get_contents($token_url); 
$curl = curl_init(); 

curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.lyft.com/v1/drivers?lat=$ltt&lng=$lng", 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_ENCODING => "", 
    CURLOPT_MAXREDIRS => 10, 
    CURLOPT_TIMEOUT => 30, 
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, 
    CURLOPT_CUSTOMREQUEST => "GET", 
    CURLOPT_HTTPHEADER => array(
    "authorization: Bearer $token_json", 
    "cache-control: no-cache", 
    "postman-token: 205a9ff0-102f-7f7a-8f11-b473946cc3fd" 
), 
)); 

$response = curl_exec($curl); 
$err = curl_error($curl); 

curl_close($curl); 

if ($err) { 
    echo "cURL Error #:" . $err; 
} else { 
    echo $response; 
} 
?> 
</body> 
</html> 

Разница здесь

CURLOPT_HTTPHEADER => array(
    "authorization: Bearer gAAAAABYXNVPV4B9AEY2bHRZDhB_jw6-hj4ptvUttm45jqroJN0lV5QSZGd-5AL0jrVKod4R5J0Sdxam1Y2nduEO_Lvud8fFGnqAN7shjzgcl9RmLQN5WljEJ9us-Y41_qGr7HT10EH8acseSt-mdO7Dp9MeYaFMkcjIP-IdrIL9uVNll-JypwQgftZ1Bum7gCtQEgpqjGeRuwE4YwE6rLPFALUgZVWNlg==", 
    "cache-control: no-cache", 
    "postman-token: 205a9ff0-102f-7f7a-8f11-b473946cc3fd" 
), 
)); 

Я предпочел бы это вместо того, чтобы долго маркер открытого ключа, но с эта настройка ответ, который я получаю, пуста, и я уже давно смущен, и я не могу найти ответ, возможно, я из моей лиги. Любая помощь приветствуется

CURLOPT_HTTPHEADER => array(
    "authorization: Bearer $token_json", 
    "cache-control: no-cache", 
    "postman-token: 205a9ff0-102f-7f7a-8f11-b473946cc3fd" 
), 
)); 

ответ

1

Ответ на мой вопрос был поставить аутентификации локона запроса перед другими запросами локона.

$curl = curl_init(); 

curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.lyft.com/oauth/token", 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_ENCODING => "", 
    CURLOPT_MAXREDIRS => 10, 
    CURLOPT_TIMEOUT => 30, 
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, 
    CURLOPT_CUSTOMREQUEST => "POST", 
    CURLOPT_POSTFIELDS => "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"grant_type\"\r\n\r\nclient_credentials\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"scope\"\r\n\r\npublic\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--", 
    CURLOPT_HTTPHEADER => array(
    "authorization: Basic a0JFTE1Oak9QQWY2Om1VZVdwc1lRS0ExUWdfS1dnYTN1OHlHajQxQ3E4LV9X", 
    "cache-control: no-cache", 
    "content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW", 
    "postman-token: f5d6e662-1663-e577-2c0d-705f03275fa8" 
), 
)); 

$response = curl_exec($curl); 
$err = curl_error($curl); 

curl_close($curl); 

$json = json_decode($response, true); 
$token = $json['access_token']; 
1

использования:

CURLOPT_HTTPHEADER => array(
"authorization: Bearer ".$token_json, 
"cache-control: no-cache", 
"postman-token: 205a9ff0-102f-7f7a-8f11-b473946cc3fd" 
), 
)); 
+0

К сожалению, код не показал другого ответа. Ответ остается пустым. –

+0

, тогда проверьте, что $ token_json действительно имеет значение –

+0

У меня есть способ, которым я проверяю запуск echo $ token_json, чтобы убедиться, что он вызывает ключ маркера, и он делает это. Спасибо за ваши усилия –

Смежные вопросы