如何用PHP连接到twitpic API?

时间:2011-07-14 15:35:11

标签: php twitter

我无法连接到twitpic API。我试过这个:

$post = array (
    'key' => 'fghgfhdfghf',
    'consumer_token' => 'retert',
    'consumer_secret' => 'ertertwerwtetey',
    'oauth_token' => 'wety43y4y4wy',
    'oauth_secret' => 'seryeryereshrh',
    'message' => 'ffff',
    'media' => file_get_contents('http://img.yandex.net/i/www/logo.png')
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://api.twitpic.com/1/upload.json');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);

$response = curl_exec($ch);
echo $errno = curl_errno($ch);
curl_close ($ch);
echo $response;

这段代码有什么问题?谁能给我一个如何让这个工作的例子?

3 个答案:

答案 0 :(得分:2)

“file_get_contents”并非始终在服务器上启用

答案 1 :(得分:1)

PEAR有一个包,可以从细节中抽象出来:Services_Twitter_Uploader

答案 2 :(得分:0)

您无法像这样流式传输图像。您必须先将其下载,例如,下载到临时文件:

$tempname = tempnam( sys_get_temp_dir(), 'twitpic' );
file_put_contents( $tempname, file_get_contents( 'http://img.yandex.net/i/www/logo.png' ) );

media字段的设置如下:

$post['media'] = "@$tempname";

请求完成后(curl_exec()之后),您可以删除临时文件:

unlink( $tempname );