我无法连接到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;
这段代码有什么问题?谁能给我一个如何让这个工作的例子?
答案 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 );