Parse 的 REST API 和 PHP Curl 请求 - 如何
Posted
技术标签:
【中文标题】Parse 的 REST API 和 PHP Curl 请求 - 如何【英文标题】:Parse's REST API and PHP Curl requests - how to 【发布时间】:2012-07-29 02:22:19 【问题描述】:我正在使用出色的Parse 作为数据存储,但需要通过 php 访问它(作为一个可能无关紧要的细节 - 我必须通过 PHP 访问它,以便 Facebook 抓取工具识别动态生成的标签在我的页面上)。
Parse 有一个 Rest API,以及如何使用它们的基本说明。例如,要检索一个对象:
curl -X 获取 \ -H "X-Parse-Application-Id: [我的应用程序 ID]" \ -H "X-Parse-REST-API-Key: [我的 Parse Rest API 密钥]" \https://api.parse.com/1/classes/moods/
不幸的是,我不知道如何将它与我在网上看到的 PHP Curl 示例集成。我收集:
curl_setopt($ch, CURLOPT_USERPWD,
..可能涉及。可能:
curl_setopt($ch, CURLOPT_URL, $Url);
但我可能会走得很远。我真的很抱歉自己无法弄清楚这一点——但我认为这仍然是一个有效的问题,因为它让那些以前没有使用过 Curl/PHP 的人感到非常困惑。基本上 - 我正在寻找与 Parse 文档中引用的示例放在哪里一样基本的信息......
提前致谢
编辑:
大家好,这是我配置的解决方案。感谢 debianek 让我朝着正确的方向前进。
if ($_GET['id'])
$imageId = $_GET['id'];
MyApplicationId = '[ID]';
$MyParseRestAPIKey = '[API Key]';
$url = 'https://api.parse.com/1/classes/images/'.$imageId;
$headers = array(
"Content-Type: application/json",
"X-Parse-Application-Id: " . $MyApplicationId,
"X-Parse-REST-API-Key: " . $MyParseRestAPIKey
);
$handle = curl_init();
curl_setopt($handle, CURLOPT_URL, $url);
curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($handle);
curl_close($handle);
$array = json_decode($data);
$title = $array->title;
..等等。希望对您有所帮助。
【问题讨论】:
您好,您说您知道如何使用它。你能在这里发布解决方案吗 在编辑中。对延误表示歉意。 解决方案应该在单独的答案中,不是在问题本身中。将其从此处删除并将其放入新答案中。 【参考方案1】:将此函数用于所有对象插入,该对象应创建为具有正确索引的关联数组
function insertObject($classname,$object)
$ appId="xxxxx";
$restKey="xxxx"
$url = 'https://api.parse.com/1/classes/'.$classname;
$rest = curl_init();
curl_setopt($rest, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($rest, CURLOPT_FRESH_CONNECT, FALSE);//use cache if available
curl_setopt($rest, CURLOPT_TIMEOUT, 10); //10 sec timeout
curl_setopt($rest,CURLOPT_URL,$url);
curl_setopt($rest,CURLOPT_PORT,443);
curl_setopt($rest,CURLOPT_POST,1);
curl_setopt($rest,CURLOPT_POSTFIELDS, json_encode($object));
curl_setopt($rest,CURLOPT_HTTPHEADER,
array("X-Parse-Application-Id: " . $appId,
"X-Parse-REST-API-Key: " . $restKey,
"Content-Type: application/json"));
curl_setopt($rest, CURLOPT_SSL_VERIFYPEER, false);//to avoid certificate error
$response = curl_exec($rest);
echo $response ;
【讨论】:
【参考方案2】: <?php
$url = 'https://api.parse.com/1/classes/GameScore';
$appId = 'YOUR_APP_ID';
$restKey = 'YOUR_REST_KEY';
$headers = array(
"Content-Type: application/json",
"X-Parse-Application-Id: " . $appId,
"X-Parse-REST-API-Key: " . $restKey
);
$objectData = '"name":"Adarsh", "age":"26"';
$rest = curl_init();
curl_setopt($rest,CURLOPT_URL,$url);
curl_setopt($rest,CURLOPT_POST,1);
curl_setopt($rest,CURLOPT_POSTFIELDS,$objectData);
curl_setopt($rest,CURLOPT_HTTPHEADER,$headers);
curl_setopt($rest,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($rest,CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($rest);
echo $response;
print_r($response);
curl_close($rest);
?>
【讨论】:
【参考方案3】:放入标题
$headers = array(
"X-Parse-Application-Id: $MyApplicationId",
"X-Parse-REST-API-Key: $MyParseRestAPIkey"
);
$handle = curl_init();
curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
【讨论】:
非常感谢。通过一些额外的调整,我得到了这个工作。当我有一个完整的解决方案时,我将编辑我的原始帖子以反映这一点。这引出了我的下一个子问题。我相信,我的 PHP 中有一个 JSON 对象。 HTTP_HEADER 文本输出确认它已正确获取。 $data = curl_exec($handle); $array = json_decode($data, true);但是,当我尝试在我的 html 正文中回显 $data 时,我得到“错误:未经授权”,并且回显 $array 回显了“数组”这个词。尝试 $array['objectId'] 或 $array[0].objectId 返回一个空白。任何进一步的帮助都非常感谢..以上是关于Parse 的 REST API 和 PHP Curl 请求 - 如何的主要内容,如果未能解决你的问题,请参考以下文章
添加和查询指针不适用于 Parse.com 的 REST API
如何使用 AFNetworking 2.0 处理 Parse.com Rest API 错误
如何使用 REST API 从 Parse.com 下载文件?
Parse Server - 如何在 Heroku 上启用 REST API 密钥