OAuth kullanarak Güncelleme twitter profil resmi

1 Cevap php

Ben OAuth kullanarak işe twitter update_profile_image almaya çalışıyorum. Ben normal doğrulama ile curl kullanarak ve herşey güzel çalışıyordu, ama ben this library kullanarak OAuth geçti, ve şimdi update_profile_image dışında her şey çalışıyor.

I twitter OAuth having problems with multipart data hakkında bir şeyler okudum, ama bu bir süre önceydi ve the plugin is supposed to have dealt with that issue.

Kıvırmak kodu ile benim çalışma düzenli doğrulama

$url      = 'http://api.twitter.com/1/account/update_profile_image.xml';
  $uname    = $_POST['username'];
  $pword    = $_POST['password'];
  $img_path = 'xxx';

  $userpwd  = $uname . ':' . $pword;
  $img_post = array('image' => '@' . $img_path . ';type=image/jpeg',
            'tile'  => 'true');
  $format = 'xml'; //alternative: json
  $message = 'Test update with a random num'.rand();

  $opts = array(CURLOPT_URL => $url,
          CURLOPT_FOLLOWLOCATION => true,
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_HEADER => true,
          CURLOPT_POST => true,
          CURLOPT_POSTFIELDS => $img_post,
          CURLOPT_HTTPAUTH => CURLAUTH_ANY,
          CURLOPT_USERPWD => $userpwd,
          CURLOPT_HTTPHEADER => array('Expect:'),
          CURLINFO_HEADER_OUT => true);

  $ch = curl_init();
  curl_setopt_array($ch, $opts);
  $response = curl_exec($ch);
  $err      = curl_error($ch);
  $info     = curl_getinfo($ch);
  curl_close($ch);

Benim şu anki OAuth kod [ben onu kesmek zorunda kaldım, bu yüzden sözdizimi hataları için küçük Bakma yapmak]

include 'EpiCurl.php';
include 'EpiOAuth.php';
include 'EpiTwitter.php';
include 'secret.php';

$twitterObj = new EpiTwitter($consumer_key, $consumer_secret);

$twitterObj->setToken($_GET['oauth_token']);
$token = $twitterObj->getAccessToken();
$twitterObj->setToken($token->oauth_token, $token->oauth_token_secret);

try{
  $img_path = 'xxx';
  //$twitterObj->post_accountUpdate_profile_image(array('@image' => "@".$img_path));    

   $twitterObj->post('/account/update_profile_image.json', array('@image' => "@".$img_path));

   $twitterObj->post_statusesUpdate(array('status' => 'This is my new status:'.rand())); //This works
   $twitterInfo= $twitterObj->get_accountVerify_credentials();  
   echo $twitterInfo->responseText;
}catch(Exception $e){
    echo $e->getMessage();
  }

Ben bir süre için bu anlamaya çalışıyorum, herhangi bir yardım büyük mutluluk duyacağız. I this library bağlı herhangi bir şekilde değilim, bu yüzden başkalarına tavsiye çekinmeyin.

1 Cevap

Ben kullanıyordum kütüphanesinin versiyonu eski. Ben güncellenen keresinde nedeniyle yanlış sunucusu zaman 401 hata dahil diğer konularda bir çift ile uğraşmak zorunda kaldı, ve şimdi her şey gayet iyi çalışıyor. $ Tepki> responseText yazdırarak çok yardımcı olur.