Возможно, вы захотите проверить эту статью.Он проведет вас по шагам и даст множество примеров.
API предоставляют следующие методы.twitpic logo Размещать изображения в twitpic API с использованием PHP
METHOD: uploadAndPost (http://twitpic.com/api/uploadAndPost)
METHOD: upload (http://twitpic.com/api/upload)
Error codes
1001 – Invalid twitter username or password
1002 – Image not found
1003 – Invalid image type
1004 – Image larger than 4MB
Приведенное выше описание API на странице API twitpic.Но вам не нужно вдаваться в эти сложные детали.Вместо этого вы можете использовать класс, который позволит вам опубликовать изображение в твитпике и обновить ваш статус в Твиттере в той же учетной записи.Это просто и удобно.Проверьте код ниже.
<?php
class twitpic
{
/*
* variable declarations
*/
var $post_url='http://twitpic.com/api/upload';
var $post_tweet_url='http://twitpic.com/api/uploadAndPost';
var $url='';
var $post_data='';
var $result='';
var $tweet='';
var $return='';
/*
* @param1 is the array of data which is to be uploaded
* @param2 if passed true will display result in the XML format, default is false
* @param3 if passed true will update status twitter,default is false
*/
function __construct($data,$return=false,$tweet=false)
{
$this->post_data=$data;
if(empty($this->post_data) || !is_array($this->post_data)) //validates the data
$this->throw_error(0);
$this->display=$return;
$this->tweet=$tweet;
}
function post()
{
$this->url=($this->tweet)?$this->post_tweet_url:$this->post_url; //assigns URL for curl request based on the nature of request by user
$this->makeCurl();
}
private function makeCurl()
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($curl, CURLOPT_URL, $this->url);
curl_setopt($curl, CURLOPT_POST, 3);
curl_setopt($curl, CURLOPT_POSTFIELDS, $this->post_data);
$this->result = curl_exec($curl);
curl_close($curl);
if($this->display)
{
header ("content-type: text/xml");
echo $this->result ;
}
}
private function throw_error($code) //handles few errors, you can add more
{
switch($code)
{
case 0:
echo 'Think, you forgot to pass the data';
break;
default:
echo 'Something just broke !!';
break;
}
exit;
}
} //class ends here
?>
Приведенный выше класс PHP выполняет всю хитрость, чтобы загрузить картинку в твитпик и опубликовать статус в твиттере.Вы можете использовать этот класс как с использованием формы HTML, так и с помощью сценария PHP для автоматической загрузки изображения и публикации твита.Вы можете использовать следующую HTML-форму и PHP-скрипт в комбинации для загрузки изображения, принимая данные от пользователя.
// This block of code should be written above the HTML and it will exit after the picture has been uploaded. If //you have turned display on (by passing 3rd param as true) then it will display the success message.
if($_POST)
{
$file=$_FILES['media'];
$postfields = array();
$postfields['username'] = $_POST['username'];
$postfields['password'] = $_POST['password'];
$postfields['message'] = $_POST['message'];
$postfields['media'] = "@$file[tmp_name]";
$t=new twitpic($postfields,true,true);
$t->post();
exit;
}
<style type="text/javascript">
*{font-family:verdana;}
span{font-size:12px;color:#393939;}
h3{font-size:14px;color:#5AAAF7;}
</style>
<body>
<h3>Upload your pic to twitpic, and post status on twitter</h3>
<form method="post" enctype="multipart/form-data" action="<?= $_SERVER[PHP_SELF] ?>" >
<p><span style="height:40px;font-weight:bold;margin-right:56px;">Twitter Username :</span><input type="text" name="username" /></p>
<p><span style="height:40px;font-weight:bold;margin-right:61px;">Twitter Password:</span><input type="password" name="password" /></p>
<p><span style="vertical-align:text-top;height:40px;font-weight:bold;margin-right:28px;">Message to be posted :</span> <textarea cols="35" rows="2" name="message"></textarea></p>
<p><span style="vertical-align:text-top;height:40px;font-weight:bold;">Choose an image to upload: </span><input type="file" name="media" /></p>
<p style="width:250px;text-align:right;margin-top:50px;"><input type="submit" value="Upload »" /> </p>
</form>
<sup>Script powered by <a href="http://www.digimantra.com/">www.digimantra.com</a></sup>
</body>
You can skip posting update to twitter by passing the third argument as false or just by skipping it. If you want to upload image programmatically, without the user input or the form then you can do it using the following code. Make sure the image path is correctly mention, else it will throw an error.
<?php
$file='file_to_be_uploaded.gif';
$postfields = array();
$postfields['username'] = 'twitter_username';
$postfields['password'] = 'twitter_password';
$postfields['message'] = 'Message to be posted' ;
$postfields['media'] = "@$file"; //Be sure to prefix @, else it wont upload
$t=new twitpic($postfields,true,true);
$t->post();
?>
Этот вышеприведенный класс отправляет изображение в двоичном формате, как описано в разделе Отправка двоичных данных с использованием curl php,Вы можете изменить класс в соответствии со своими потребностями, а также улучшить его так, как вам нравится.Надеюсь, этот пост помог вам узнать что-то.