使用TwitterAPIExchange使用PHP发送状态和图片(第2部分)

时间:2015-04-25 10:20:06

标签: php twitter

我最近问过一个question,我正在努力使用PHP和TwitterAPIExchange将状态和媒体上传到Twitter。

我得到了一些很好的建议,但它仍然没有成功。也就是说,我没有收到错误,但推文没有出现。

我认为写一篇新帖更容易,因为前一篇文章不允许我添加超过几百个字符。

我现在已经重新编写了该功能(显示在最后),因此它只会发送一个状态+图像。这使它更短,我希望,更容易遵循。正如所建议的那样,我已经摆脱了不赞成的电话。

我还包含了一些关键变量的转储。这些出现如下:

$tweet = 'Test for Stack Exchange'

$imagesPath = '/twitter/images/GXK/'

$image = 'graham.jpg'

$url = 'https://api.twitter.com/1.1/statuses/update.json'

$imageToPost = '/twitter/images/GXK/graham.jpg'

我还尝试为图像输入完整的路径名,即:

'media[]' => "@{http://www.graham-kendall.com/twitter/images/GXK/graham.jpg}");

我也尝试过:

'media' => "http://www.graham-kendall.com/twitter/images/GXK/graham.jpg");

DOES 实际上是推文,但图片。

任何帮助表示感谢。

功能

public function postImageTweet($tweet, $imagesPath, $image) {
    $url         = $this->baseTwitterURL . 'statuses/update.json';
    $imageToPost = $imagesPath . $image;

    // Display key variables
    echo "tweet: "          . $tweet          . $newline;
    echo "imagesPath: "     . $imagesPath     . $newline;
    echo "image: "          . $image          . $newline;
    echo "url: "            . $url            . $newline;
    echo "imageToPost: "    . $imageToPost    . $newline;

    $requestMethod = 'POST';

    $postfields = array(
      'status' => $tweet,
      'media[]' => "@{http://www.graham-kendall.com/twitter/images/GXK/graham.jpg}");

    try{        
       $twitter = new TwitterAPIExchange($this->settings);
       echo $twitter->buildOauth($url, $requestMethod)
                    ->setPostfields($postfields)
                    ->performRequest();

    } catch (Exception $ex) {
            echo $ex->getMessage();
    }
} // postImageTweet

1 个答案:

答案 0 :(得分:0)

我认为$url必须是这样的:

$url = $this->baseTwitterURL . 'statuses/update_with_media.json';

如果您不使用“with_media”,那将无效。