Soy muy muy nuevo a la api de twitter, hoy he primer momento de la inscripción para la api de twitter en mi vida. mi objetivo es publicar las fotos de mi sitio web con un mensaje en twitter. Tengo que descargar su actual biblioteca de internet, me da siguientes 2 archivos y algunos ejemplos.

he incluir esos dos archivos y obtener este código photo_tweet.php significa tweet con foto

aquí está mi código

<?php
require 'tmhOAuth.php';
require 'tmhUtilities.php';

$tmhOAuth = new tmhOAuth(array(
  'consumer_key'    => 'ZlhOWeCWG2MS5Wxxxxxx',
  'consumer_secret' => 'DIPjoKcIWjpGWmw5jGJSKGAOLxxxxxx',
  'user_token'      => 'xxxxx-OGtPyRSUOUaR6XQRLAFVuv14xxxxxx',
  'user_secret'     => 'xxxxxoimsrNFhlz7mPa9h5pyVSjxxxxxxx',
));

//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 = 'a.jpg';

$code = $tmhOAuth->request(
  'POST',
  'https://upload.twitter.com/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']);
}

?>

a.jpg es en mi servidor.

aquí está mi configuración en twitter!

Tipo de solicitud: OBTENER
URI de la solicitud:* https://api.twitter.com/1/

cuando puedo subir todo este código y acceder a mi código devuelve en blanco pedregal, cuando me echo $código; devuelve 0

todo lo que he observado y experimentado. Estoy en la necesidad de su ayuda. Voy a ser muy muy de agradecer completo para usted

Nota: Evento Cuando me quité el consumer key y consumer secret este código no muestra ningún tipo de error. sólo una pantalla en blanco. Quiero esto para mostrar los errores en caso de cualquier problema, pero no de error


Aquí está el código para el estado, sólo funcionará para mí

$consumerKey = $consumer_key;
$consumerSecret = $consumer_secret;
$OAuthToken = $user_token;
$OAuthSecret = $user_secret;

include "OAuth.php";
include "twitteroauth.php";

$tweet = new TwitterOAuth($consumerKey, $consumerSecret, $OAuthToken, $OAuthSecret);

$image = 'a.jpg';

$optsArray['status'] = 'Hi';



if (isset($_GET['msg'])) {
    $tweetmsg = $_GET['msg'];
    $tweet->post('statuses/update',$optsArray);

   if($tweet)
     echo "Your message has been sent to Twitter.";
   else
     echo "Your message has not been sent to Twitter.";

} else {
    echo "Your message has not been sent to Twitter.";
}

pero el mismo post de la condición de » sólo cuando uso

update_with_media.json

y

$optsArray[‘@media[]’] = «@{$imagen}»;

no funciona , por favor me ayude a entender este problema

  • has probado el Twitter para publicar simple mensaje ? Yo sugiero que el primer post de un mensaje simple para probar tu código / claves de api/ fichas
  • puedo usar otro código muy simple para probar, pero también da la pantalla en blanco. He copiado mis llaves y los tokens de twitter configuración correctamente.
InformationsquelleAutor Hilton Sky | 2012-02-28

1 Comentario

  1. 1

    Usted puede ser que desee comprobar en este artículo. Camina a través de los pasos y da muchos ejemplos.

    Los siguientes métodos son proporcionados por la API.
    twitpic logotipo de Publicar las fotos en twitpic API con 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

    Dado anteriormente es el API descripción de twitpic el API de la página. Pero usted no necesita entrar en los complicados detalles. En lugar usted puede utilizar una clase que te permitirá publicar una foto en twitpic y actualizar el estado de twitter en la misma cuenta. Esto es simple & fácil de usar. Compruebe el código de abajo.

    <?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
    ?>

    La anterior clase de PHP que hace todo el truco para cargar una foto en twitpic y publicar el estado en el twitter. Usted puede utilizar esta clase, tanto con el uso de formulario HTML o usar un script de PHP para cargar automáticamente la imagen y enviar el tweet. Puede utilizar el siguiente formulario HTML y script de PHP en combinación para cargar la imagen al tomar
    la entrada del usuario.

    //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&nbsp;&raquo;" /> </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();
    ?>

    Esta clase anterior puestos de la imagen en el formato binario como se discutió en Enviar datos binarios mediante curl de php. Usted puede cambiar la clase que se adapte a su necesidad y también puede mejorar la forma en que te gusta. Espero que este post te ayudó a aprender algo.

    • gracias por su amable respuesta, el código anterior funciona perfectamente. pero hay que poner nombre de usuario y contraseña. Quiero usar Oauth. por ejemplo, si un usuario ha llegado a mi sitio web que a él le gusta una imagen que él puede compartir esta foto a twitter sin dar su nombre de usuario y contraseña en mi sitio web. Usando la API de twitter Oauth,
    • Evento Cuando me quité el consumer key y consumer secret y otros detalles de este código no muestra ningún tipo de error. sólo una pantalla en blanco. Quiero esto para mostrar los errores en caso de cualquier problema, pero no de error
    • No de trabajo. Error <rsp stat=»no»><err code=»1001″ msg=»no Válido nombre de usuario de twitter o la contraseña»/></rsp> Cuando he copiado mismo nombre de usuario y la contraseña de inicio de sesión de twitter en la página de inicio de sesión, funcionó bien. 🙁

Dejar respuesta

Please enter your comment!
Please enter your name here