2017-05-15 12 views
1

自分のDMに送信されたイメージをフェッチしたいときに問題があります。 APIからDMデータを取得するとき、画像のメディアIDは取得されましたが、取得する方法はありますか?PHP REST APIを使用してTwitterから画像を取得しますか?

画像を取得してアカウントにツイートしたいと思います。そこで、基本的

  • 誰かが
  • 私はAPIからのアカウントのDMを読ん
  • さえずるDMの内容私のアカウントここ

にメディアで私にDMを送るには、私のコード

です
$AMConnection = new \Twitter\OAuth(AM_CONSUMER_KEY, AM_CONSUMER_SECRET); 
    $AMConnection->setAccessToken($amService->token, $amService->secret); 
    $jsonData = json_decode(file_get_contents("./fetchDM.json")); 
    foreach ($jsonData as $json) { 
     if (!isset($json->entities->media)) continue; 
     $medias = $json->entities->media; 
     $postParam['status'] = $json->text; 
     foreach ($medias as $image) { 
      $postParam['status'] = str_replace($image->url, "", $postParam['status']); 
      $postParam['media_ids'][] = $image->id_str; 
     } 

     echo "SEND TWEET".PHP_EOL; 
     $return = $AMConnection->post('statuses/update', $postParam); 
     var_dump($return); 
     if (isset($return->errors) and count($return->errors) > 0) { 
      foreach ($return->errors as $error) { 
       if ($error->code == 89) { 
        $amService->token = null; 
        $amService->secret = null; 
        $amService->save(); 
        break; 
       } 
      } 
     } 
    } 

私のタラe、私はmedia_idを使用してメディアをつぶすように試みましたが、動作しません。 悪い英語で申し訳ありません

答えて

1

最後に解決しました。
だから私はいくつかのフォーラムでこの1のために見てきたが、唯一の2フォーラムはTwitterのフォーラムで答え、1(すみません、私はリンクを持っていない)と、別の1 StackOverflow

を持っている私は、ライブラリを使用していじってみてくださいよそれと一緒に外に出た。 REST APIをリクエストするために使用したライブラリは、URLとPOSTデータからのOAuthリクエストを使用します。うん、これは完全に機能しています(REST APIのみ)が、これはまったく異なります。

DMから画像を取得するには、ヘッダー認証を使用する必要があります。他の方法はありません。

私のサンプルでは、​​https://ton.twitter.com/1.1/ton/data/dm/863758539021365258/9246464/VSSysEvy.jpgを取得しようとしています(これはDMの画像URLなので、私とその画像だけを私に送信した人だけが見ることができます)。

私は、要求がこの

<?php 
$this->http_info = array(); 
$ci = curl_init(); 
$url = 'https://ton.twitter.com/1.1/ton/data/dm/863758539021365258/9246464/VSSysEvy.jpg'; 
$headerAuth = 'Authorization: OAuth oauth_version="1.0", 
       oauth_nonce="{autoGeneratedNonce}", 
       oauth_timestamp="{time()}", 
       oauth_consumer_key="{yourAppToken}", 
       oauth_token="{userToken}", 
       oauth_signature_method="HMAC-SHA1", 
       oauth_signature="{autoGeneratedSignature}"'; 
/* Curl settings */ 
curl_setopt($ci, CURLOPT_USERAGENT, 'LShaf User Agent'); 
curl_setopt($ci, CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt($ci, CURLOPT_HTTPHEADER, [$headerAuth]); 
curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ci, CURLOPT_HEADER, FALSE); 
curl_setopt($ci, CURLOPT_URL, $url); 
$response = curl_exec($ci); 
curl_close ($ci); 

ノートのようになりますので、画像を取得するためにCURL PHPを使用しています:あなたMUST使用方法をを取得し、HEADER上の認可を置く
最後に、私は悪い英語のために申し訳ありません。

関連する問題