好的,所以我是个新手,当涉及到api的时候。我已经使用了wundergrounds,没有问题。但是,我试图在php中使用LogMeIn的REST,我肯定做错了什么。
说明书上说要检查你的证件
第一个调用应该是GET /v1/身份验证,以检查您的凭据是否有效。因此,如果您的CompanyID为1234567890,而PSK为abcde12345ABCDE12345 (通常实际PSK将为128个字符长),则可以调用以下操作:
$ curl https://secure.logmein.com/public-api/v1/authentication -i -H "Accept: application/JSON; charset=utf-8" -H "Authorization: {\"companyId\": 1234567890, \"psk\": \"abcde12345ABCDE12345\"}"其中,-H参数发送一个header,而-i参数显示响应的头部。
响应:
HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 16
Content-Type: application/JSON; charset=utf-8
Server: Microsoft-IIS/7.5
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTR STP IND DEM"'
X-Powered-By: ASP.NET
Date: Mon, 11 Nov 2013 15:12:57 GMT
{"success":true}下面是我的PHP:
<?php
$json_string_LogMeIn = file_get_contents("https://secure.logmein.com/public-api/v1/authentication -i -H "Accept: application/JSON; charset=utf-8" -H "Authorization: {\"companyId\": 1234567890, \"psk\": \"abcde12345ABCDE12345\"}"");
$parsed_json_LogMeIn = json_decode($json_string_LogMeIn);
echo $parsed_json_LogMeIn;
?>我用我的公司代码代替了1234567890,用我生成的psk代替了abcde12345ABCDE12345。
当我打开php页面时,我什么也得不到。
发布于 2017-05-03 02:02:56
file_get_contents()不像您想要的那样工作,而是使用cURL,即:
$headers = array(
"Accept: application/JSON; charset=utf-8",
"Authorization: {\"companyId\": 1234567890, \"psk\": \"abcde12345ABCDE12345\"}",
);
$url = "https://secure.logmein.com/public-api/v1/authentication";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$data = curl_exec($ch);
curl_close($ch);
echo $data;
# {"success":false} / which is correct since I'm using a fake Authorization更新:
您似乎需要在curl上启用php.ini,请参阅此链接
发布于 2017-05-03 16:03:06
所以我做了几件事来解决我的问题:
第一,我升级到了一个更新的PHP7.1.1版本,它修复了Curl,然后我得到了一个cert错误。我也找到了解决办法。
虽然我稍微切换了一下,但您的代码仍然有效。
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://secure.logmein.com/public-api/v1/authentication");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers = array();
$headers[] = "Accept: application/JSON; charset=utf-8";
$headers[] = "Authorization: {\"companyId\": 1234567890, \"psk\": \"abcde12345ABCDE12345\"}";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
echo $result;https://stackoverflow.com/questions/43749496
复制相似问题