0

matt harrisのTwitterライブラリhttps://github.com/themattharris/tmhOAuthを使用しており、画像のアップロード例に従っています。

$ tmhOAuth-> response ['response']が返されない状態で画像を投稿しようとすると、ゼロが返されます。

私が試した手順

  1. 例をそのまま実行すると失敗します
  2. 検証SSLの実行-正常に動作します
  3. 画像なしでステータス更新を実行すると、期待どおりに正しく投稿されます
  4. URLを1から1.1に交換-何も変更されず、ライブラリは引き続きゼロを返します

それは非常に速く実行され、画像を投稿しようとさえしないことを意味します。

これが機能しない理由や、サーバーで構成する必要があるものについてのアイデア

以下は、試してみるために例からコピーしたコードです。

<?php
// testing hmac works- correctly
echo hash_hmac('ripemd160', 'The quick brown fox jumped over the lazy dog.', 'secret');


$tmhOAuth = array( 'consumer_key' => 'removed',
                   'consumer_secret' => 'removed',
                   'user_token' => 'removed', 
                   'user_secret' => 'removed');


// array(
//   'consumer_key'    => 'YOUR_CONSUMER_KEY',
//   'consumer_secret' => 'YOUR_CONSUMER_SECRET',
//   'user_token'      => 'A_USER_TOKEN',
//   'user_secret'     => 'A_USER_SECRET',
// )

require 'tmhOAuth.php';
require 'tmhUtilities.php';
$tmhOAuth = new tmhOAuth($tmhOAuth);

// we're using a hardcoded image path here. You can easily replace this with
// an uploaded image - see images.php in the examples folder for how to do this
// 'image = "@{$_FILES['image']['tmp_name']};type={$_FILES['image']['type']};filename={$_FILES['image']['name']}",

// this is the jpeg file to upload. It should be in the same directory as this file.
$image = 'image.png';

$code = $tmhOAuth->request(
  'POST',
  'https://upload.twitter.com/1.1/statuses/update_with_media.json',
  array(
    'media[]'  => "@{$image};type=image/jpeg;filename={$image}",
    'status'   => 'Picture time',
  ),
  true, // use auth
  true  // multipart
);

if ($code == 200) {
  tmhUtilities::pr(json_decode($tmhOAuth->response['response']));
} else {
  tmhUtilities::pr($tmhOAuth->response['response']);
}
?>
4

1 に答える 1

1

リクエストの投稿 URL https://upload.twitter.comは、 http://api.twitter.comである必要があります。

于 2012-11-13T18:09:56.453 に答える