簡體   English   中英

如何使用 TwitterOAuth (abraham/twitteroauth) 在 PHP 中獲取/生成 Twitter 的 HMAC-SHA1 簽名

[英]How to get/generate HMAC-SHA1 signature for Twitter in PHP using TwitterOAuth (abraham/twitteroauth)

我正在嘗試按照 Twitter 文檔的建議使用HMAC-SHA1生成我的簽名。

但是我正在使用abraham/twitteroauth package 來使這個“更容易”,並且我留下了它返回給我的屏幕截圖。

在此處輸入圖像描述

package 確實有效。

注意:我想要做的是對其他用戶的其他推文進行 RT 和 FAV。 除此之外,創建回復。

有什么想法我能做什么或如何生成這個簽名?

我用 POSTMAN(Twitter 提供的那個)試過它,它在那里工作,但它在我的代碼中不起作用。

生成簽名的數據是:

  • 消費者密鑰
  • 消費者秘密
  • 訪問令牌
  • token_secret

在此處輸入圖像描述

我也指向端點: https://api.twitter.com/2/users/:id/retweets

雖然我想知道如何在不使用包的情況下生成簽名,但我想與您分享一些對我有用的東西(使用包)。

我想用Guzzle來測試 Twitter API 如何通過 Laravel 工作。

因為我想做的就像一條推文,所以我做了如下。 使用亞伯拉罕/twitteroauth package。

所以我把我的代碼分開了一點。

private function getApplicationInfo(){
      //Aplication information
      $api_key = 'twitter_api_key';
      $api_key_secret = 'twitter_api_key_secret';
    
      $credentials = [
         'api_key' => $api_key,
         'api_key_secret' => $api_key_secret,
      ];
    
      return $credentials;
   }

//然后我從另一個方法調用這個數據

public function likeTweet(){
      $application_info = $this->getApplicationInfo();
      $user = User::whereId(2)->first(); 
      $user_info = json_decode($user->user_info, true);

      
      $twitter_info = new TwitterOAuth(
         $application_info['api_key'], 
         $application_info['api_key_secret'], 
         $user_info['oauth_token'], $user_info['oauth_token_secret']
      );

      $twitter_info->setApiVersion('2');
    
      $data = [
         'tweet_id' => '1463484369100853255' //Tweet to which you are going to RT or like
      ];

      //The ID of the user who is going to like or RT
      $statues = $twitter_info->post("users/twitter_user_id/retweets", $data, true); // Note the true
   }

注意:我的用戶 2 有一個 JSON 字段,其中包含這樣的信息

{"oauth_token": "user_id_twitter-token", "oauth_token_secret": "twitter_user_token_secret"}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM