0

我正在尝试使用 curl 通过 twitter 实现登录解析,此链接中的指南: https ://parse.com/docs/rest.html#users-signup

curl -X POST \
-H "X-Parse-Application-Id: REMOVED" \
-H "X-Parse-REST-API-Key: REMOVED" \
-H "Content-Type: application/json" \
-d '{
    "authData": {
      "twitter": {
        "id": "12345678",
        "screen_name": "ParseIt",
        "consumer_key": "REMOVED",
        "consumer_secret": "REMOVED",
        "auth_token": "REMOVED",
        "auth_token_secret": "REMOVED"
      }
    }
  }' \
  https://api.parse.com/1/users

这是我在 PHP 中的实现代码:

$ci = curl_init();
$data = '{"authData":{"twitter":{"id":"REMOVED","screen_name":"cat",
"consumer_key":"REMOVED",
"consumer_secret":"REMOVED",
"auth_token":"REMOVED",
"auth_token_secret":"REMOVED"}}}';

$header = array("X-Parse-Application-Id: REMOVED",
"X-Parse-REST-API-Key: REMOVED",
"Content-Type: application/json"
);
curl_setopt ($ci, CURLOPT_HTTPHEADER, $header);
curl_setopt($ci,CURLOPT_POST,true);
curl_setopt($ci,CURLOPT_POSTFIELDS,$data);
curl_setopt($ci,CURLOPT_URL,'https://api.parse.com/1/users');
 $response = curl_exec($ci);
var_dump($response);    
curl_close($ci);

但是 var_dump($response) 的结果是假的。我不知道我的代码有什么问题。有谁能够帮助我?

4

1 回答 1

1

添加

curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, false);

在运行 exec() 之前;

用于调试的过程:

  1. 在你之前curl_close(),使用print_r(curl_getinfo()). 这会告诉您有关 curl 会话的所有信息。
  2. 你会看到你什么都没有回来,这意味着防火墙或其他限制到位,或者它拒绝你无效的标题。
  3. 因此,在浏览器中输入 URL 并查看您是否需要凭据。所以 URL 是正确的,它不是防火墙。假设标头正在传递凭据(在此阶段)
  4. 因此,您注意到它是 SSL,并且您没有获得 SSL 证书。因此,上面的选项告诉您忽略证书问题。那行得通,到此为止。(否则追查那个凭证问题)
于 2012-11-23T01:07:45.480 回答