matt harrisのTwitterライブラリhttps://github.com/themattharris/tmhOAuthを使用しており、画像のアップロード例に従っています。
$ tmhOAuth-> response ['response']が返されない状態で画像を投稿しようとすると、ゼロが返されます。
私が試した手順
- 例をそのまま実行すると失敗します
- 検証SSLの実行-正常に動作します
- 画像なしでステータス更新を実行すると、期待どおりに正しく投稿されます
- 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']);
}
?>