【问题标题】:twitter API labs using by CURL php - Unauthorizedtwitter API 实验室使用 CURL php - 未经授权
【发布时间】:2020-10-20 10:40:29
【问题描述】:

当我在命令行中执行它时它工作正常:

$ curl -H "Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"  "https://api.twitter.com/labs/2/users/by?usernames=hikaru__1201&user.fields=created_at"

结果:

{"data":[{"created_at":"2016-09-28T07:02:32.000Z","id":"781026287825645573","name":"ろぐあうと","username":"hikaru__1201"}]}

但它在php中不起作用:

$url = "https://api.twitter.com/labs/2/users/by?usernames=hikaru__1201&user.fields=created_at";
$authorization = 'Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json' , $authorization ));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$result = curl_exec($ch);
curl_close($ch);
var_dump(json_decode($result)); die();

结果:

class stdClass#1 (4) {
  public $title =>
  string(12) "Unauthorized"
  public $type =>
  string(11) "about:blank"
  public $status =>
  int(401)
  public $detail =>
  string(12) "Unauthorized"
}

exec 也可以:

$command = 'curl -H "Authorization: Bearer xxxxxxxxxxxxxxx"  "https://api.
twitter.com/labs/2/users/by?usernames=hikaru__1201&user.fields=created_at"';

exec("$command 2>&1", $output);
var_dump($output); die();

结果:

 ...
       [3] =>
        string(129) "{"data":[{"created_at":"2016-09-28T07:02:32.000Z","id":"781026287825645573","name":"ろぐあうと","username":"hikaru__1201"}]}"

我尝试了这篇帖子 https://stackoverflow.com/questions/30426047/correct-way-to-set-bearer-token-with-curl 的答案,但没有运气

【问题讨论】:

    标签: php curl twitter


    【解决方案1】:

    在您的标记末尾有一个额外的双引号。

    $authorization = 'Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"';
                                                                                   ^>
    

    您可以在启用详细信息 (curl_setopt($ch, CURLOPT_VERBOSE, 1);) 的情况下运行 curl,它会向您显示它发送到服务器的请求。

    您可以查看用于调试目的的示例请求标头。

    > GET / HTTP/1.1
    Host: test.com
    Accept: */*
    Content-Type: application/json
    Authorization: Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" <--extra quote
    

    【讨论】:

      猜你喜欢
      • 2013-08-22
      • 2014-01-02
      • 2016-11-08
      • 2016-12-24
      • 2013-06-15
      • 2014-04-03
      • 2015-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多