2

ソース: https://github.com/abraham/twitteroauth/pull/137

上記のリンクでは、Github ユーザーの Robhaswell が、Abraham の TwitterOAuth コードを調整し、upload画像をアップロードする機能を追加しました。これはフレームワークへの素晴らしい追加ですが、新しいコードに適切なドキュメントやサンプルが添付されていなかったため、関数の使用に少し問題があります。

$image = 'weather.jpg';

$response = $tweet->upload('statuses/update_with_media', array(
    'status' => 'This is a test', 
    'media[]' => "@{$image};type=image/jpeg;filename={$image}")
);

一方、weather.jpg は、上記のコードを含むファイルと同じフォルダーにあります。

補足: コードは cron を介して実行され、サーバー上に常に存在する画像を Twitter にアップロードします。ユーザーが最初に画像をアップロードしてから、このスクリプトを使用して Twitter に送信できるようにする必要がないことを明確にします。

誰かが私を正しい方向に向けることができますか?

編集: この機能が元のビルドの一部ではないことは承知しており、Robhaswell の調整に従って twitteroauth と OAuth コードを更新しました。

4

2 に答える 2

5

この質問はまだ関連性がありますが、回答が古くなっているため、この質問を最新の回答で更新します。

statuses/update_with_mediaツイッターで廃止されました。https://developer.twitter.com/en/docs/tweets/post-and-engage/api-reference/post-statuses-update_with_media.html

これは、写真付きのステータスをアップロードしてツイートする作業コードです。

$twitter = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token, $access_token_secret);
$content = $twitter->get("account/verify_credentials");
$tweet = "My tweet";
$imageMedia = $twitter->upload('media/upload', array('media' => '/path/to/image/image_name.png'));
$parameters = array(
    "status" => $tweet,
    "media_ids" => $imageMedia->media_id_string);

$statuses = $twitter->post("statuses/update", $parameters);

答えを探しているときにこの質問に出くわしたので、ここに投稿すると思いました。

于 2015-05-07T07:40:28.063 に答える
3

私はこれに苦労していたので、この質問に答えることが他の人に役立つかもしれないと思いました. これは、画像アップロード機能が追加された abraham の twitteroauth を使用します (コードはここにあります) 。

image-path が正しいかどうかを確認する必要があります。サーバー上のファイルを指す必要があります(相対)。

また、twitteroauth ファイルでホストが正しいことを確認してください (ホスト URL を簡単に変更するアップロード機能を参照してください。これはもう必要ありません)。今すぐ使用する必要があります

https://api.twitter.com/1.1/

それ以外の

https://upload.twitter.com/1/

これらの 2 つのことを念頭に置いて、次のコードが機能するはずです (私にとってはそうです)。

$this->api = new TwitterOAuth($consumerKey, $consumerSecret,$token, $token_secret);    
$attachment = "./images/img.jpg";
$image = "@{$attachment};type=image/jpeg";
$status = "Text";
$result = $this->api->upload('statuses/update_with_media',array('status'=>$message,'media[]'=>$image));
于 2013-11-20T14:55:25.463 に答える