Php 使用Twitter API和Guzzle检索图像媒体

Php 使用Twitter API和Guzzle检索图像媒体,php,twitter,twitter-oauth,Php,Twitter,Twitter Oauth,我收集了一些Twitter媒体,其URL如下所示: https://ton.twitter.com/1.1/ton/data/dm/XXXX/YYYY/ZZZZ.jpg 我想检索这个url后面的“真实”媒体。然而,我一直在挣扎,主要是因为Twitter API一直在重定向我,尽管我似乎发送了所需的内容 在文档中,API指出您需要执行以下操作才能检索媒体: curl——请求获取\ --网址https://ton.twitter.com/1.1/ton/data/dm/10348285529511

我收集了一些Twitter媒体,其URL如下所示:

https://ton.twitter.com/1.1/ton/data/dm/XXXX/YYYY/ZZZZ.jpg
我想检索这个url后面的“真实”媒体。然而,我一直在挣扎,主要是因为Twitter API一直在重定向我,尽管我似乎发送了所需的内容

在文档中,API指出您需要执行以下操作才能检索媒体:

curl——请求获取\
--网址https://ton.twitter.com/1.1/ton/data/dm/1034828552951160836/1034828533812486145/oP5p359h.jpg \
--标题的授权:OAuth
oauth_consumer_key=“6nxxxxxcs”,
oauth_nonce=“Sbxxxxxx2G”,
oauth_signature=“637xxxxxxM%3D”,
oauth_signature_method=“HMAC-SHA1”,
oauth_timestamp=“1535557741”,
oauth_token=“600 SQxxxxxxcqIF”,
oauth_version=“1.0”
经过相当多的浏览,我发现他们在没有重定向的情况下成功地实现了请求。那也是我注意到我不能的地方

因此,我做了以下工作:

$client = new GuzzleHttp\Client\Client();

$authorization = '';
$auths = [
    'oauth_consumer_key' => env('TWITTER_API_KEY'),
    'oauth_nonce' => env('TWITTER_API_SECRET'),
    'oauth_signature' => env('TWITTER_ACCESS_TOKEN'),
    'oauth_timestamp' => now()->timestamp,
    'oauth_token' => env('TWITTER_SECRET_TOKEN'),
    'oauth_signature_method' => 'HMAC-SHA1',
    'oauth_version' => '1.0',
];

foreach ($auths as $key => $value) {
    $authorization .= $key . '="' . $value .'"';

    if (next($auths) !== false) $authorization .= ',';
}

// $authorization is now a string which looks like 'oauth_consumer_key="xxx",oauth_nonce="xxx" ', etc.

$response = $client->get('https://ton.twitter.com/1.1/ton/data/dm/1034828552951160836/1034828533812486145/oP5p359h.jpg', [
    'headers' => [
        'authorization' => 'OAuth ' . $authorization,
    ]
]);

dd($response->getBody()->getContents());
但是,在运行此代码时,出现以下错误:

GuzzleHttp\Exception\TooManyRedirectsException// 不会遵循超过5个重定向

我试着和邮递员碰碰运气,50次重定向后它停止了,所以我并不是在两次重定向之后

我不知道我的代码出了什么问题

注:我在尝试使用API给我的不记名令牌时遇到了同样的问题

先谢谢你