首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LogMeIn Rest

LogMeIn Rest
EN

Stack Overflow用户
提问于 2017-05-03 01:09:00
回答 2查看 395关注 0票数 0

好的,所以我是个新手,当涉及到api的时候。我已经使用了wundergrounds,没有问题。但是,我试图在php中使用LogMeIn的REST,我肯定做错了什么。

说明书上说要检查你的证件

第一个调用应该是GET /v1/身份验证,以检查您的凭据是否有效。因此,如果您的CompanyID为1234567890,而PSK为abcde12345ABCDE12345 (通常实际PSK将为128个字符长),则可以调用以下操作:

代码语言:javascript
复制
$ 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参数显示响应的头部。

响应:

代码语言:javascript
复制
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:

代码语言:javascript
复制
<?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页面时,我什么也得不到。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-03 02:02:56

file_get_contents()不像您想要的那样工作,而是使用cURL,即:

代码语言:javascript
复制
$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,请参阅此链接

票数 0
EN

Stack Overflow用户

发布于 2017-05-03 16:03:06

所以我做了几件事来解决我的问题:

第一,我升级到了一个更新的PHP7.1.1版本,它修复了Curl,然后我得到了一个cert错误。我也找到了解决办法。

虽然我稍微切换了一下,但您的代码仍然有效。

代码语言:javascript
复制
$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;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43749496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档