Güncellenmesi Twitter Durum: Karakter kaçan ve URL'ler

5 Cevap php

Ben Twitter sitemde bir formdan POST değişkeni metin geçmek ve benim kendi sitesinde bu mesajı kaydedin. Ben sitemde girişini görüntülemek zaman absoultly gayet iyi. Bununla birlikte, bazı durumlarda, mesaj heyecan bir kesme işareti, bir kullanıcının durumunu güncelleştirir ama kesme kaçar ve bu durum kullanıcıların görülebilir olduğunda!

Ben twitter sitede benim twitter durum güncelleme olduğunda bu olmaz. Ben de twitter metin geçmek için gereken bir yol var merak ediyorum?

Ben şu anda bunu yapmak ve bu harika Twitter sınıfın faydalanmak. http://github.com/jmathai/twitter-async/tree

$success = $twitterObj->post_statusesUpdate(array('status' => $_POST['message'].$URL.$key));

Buna ek olarak, twitter kullanımı URL'leri geçen otomatik URL bağlantı ama şimdi bu sadece metin olarak görünür?

Twitter yukarıda olmasına sebep olur son bir ay içinde değişiklik yaptı? Eğer değilse bunu nasıl aşabiliriz?

Tüm teşekkürler

EDIT

Daha Kodu:

function tweetit(){
    global $URL;
    global $key;

    include './twitter/EpiCurl.php';
    include './twitter/EpiOAuth.php';
    include './twitter/EpiTwitter.php';

    $consumer_key = 'hidden';
    $consumer_secret = 'hidden';

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

    $twitterObj->setToken($_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);

    $success = $twitterObj->post_statusesUpdate(array('status' =>  $_POST['message'].' '.$URL.$key));

    return $success->response['id']; 
}

5 Cevap

Php yapılandırma magic_quotes_gpc automagically (sizin POST değerleri gibi) tüm giriş üzerinde addslashes çağırır, açık var gibi geliyor. Ben php kılavuzda addslashes / stripslashes kadar okumuştu.

Eğer son sürümünü kullanıyor musunuz? Değil Sorun (diğer rasgele karakterler arasında) tek tırnak kütüphane koyar için birim testlerin bir yana ne olduğundan emin.

http://github.com/jmathai/twitter-async/blob/master/tests/EpiTwitterTest.php#L90

Bunun için işlevi htmlentities kullanabilirsiniz.

$success = $twitterObj->post_statusesUpdate(array('status' => htmlentities($_POST['message']).$URL.$key));

Veya htmlspecialchars'ın:

$success = $twitterObj->post_statusesUpdate(array('status' => htmlspecialchars($_POST['message']).$URL.$key));

Ben aynı problem vardı. Www.twitter.com yerine twitter.com ile çağrılırsa twitter farklı davranır. Bu bilinen bir hata olduğunu.

http://code.google.com/p/twitter-api/issues/detail?id=890&can=1&q=www&colspec=ID%20Stars%20Type%20Status%20Priority%20Owner%20Summary%20Opened%20Modified%20Component

Eğer posta alacaksınız ama düzelene yoluyla göndermek önce, stripslashes ile eğik kaldırdıktan sonra

urlencode(stripslashes($posted_status_update));