2012-04-01 3 views
0

Я использую следующий код, чтобы загрузить изображение в мою учетную запись rackspace cdn. Загрузка работает нормально. Предположим, я чирикаю фотографию из tweetbot, она автоматически загружается в мой rackspace cdn. Я хочу сделать это, получить сообщение, которое я написал в твиттере, и вставить как сообщение, так и ссылку на фотографию в базе данных.Извлечение твита пользователя и вставка в db

Вот что я сделал до сих пор ..

$oauthecho = new TwitterOAuthEcho(); 
$oauthecho->userAgent = 'dpkgme test app'; 
$oauthecho->setCredentialsFromRequestHeaders(); 

if ($oauthecho->verify()) {  

// Verification was a success, we should be able to access the user's Twitter info from the responseText. 
$userInfo = json_decode($oauthecho->responseText, true); 
$twitterId = isset($userInfo['id']) ? $userInfo['id'] : null; 
$tweet = isset($userInfo['message']) ? $userInfo['message'] : null; 

        error_reporting(E_ALL); 
        ini_set('display_errors', 1); 

        // include the API 
        require("cloudfiles.php") ; 

        // cloud info 
        $username = 'username'; // username 
        $key ='apikey' ; // api key 
        $container = 'container'; // container name 

        ob_start(); 


        $localfile = $_FILES['media']['tmp_name']; 
        $filename = $_FILES['media']['name']; 
        $nf = time().'-'.$filename; 


        ob_flush(); 

        // Connect to Rackspace 
        $auth = new CF_Authentication($username, $key); 
        $auth->authenticate(); 
        $conn = new CF_Connection($auth); 

        // Get the container we want to use 
        $container = $conn->create_container($container); 

        // store file information 

        ob_flush(); 

        // upload file to Rackspace 
        $object = $container->create_object($nf); 
        $object->load_from_filename($localfile); 

        $uri = $container->make_public(); 
        //print "Your URL is: " . $object->public_uri(); 

        $imagePageUrl = $object->public_uri(); 


        ob_end_flush(); 


        echo '<mediaurl>http://url/'.$nf.'</mediaurl>'; 

        $link = 'http://url/'.$nf ; 


        $con = mysql_connect("localhost","username","password"); 
        if (!$con) 
         { 
          die('Could not connect: ' . mysql_error()); 
         } 

        mysql_select_db("database", $con); 

        mysql_query("INSERT INTO photo (link)VALUES ('$link','$tweet')"); 


        mysql_close($con); 

} else { 
    // verification failed, we should return the error back to the consumer 
    $response = json_decode($oauthecho->responseText, true);  
    $message = isset($response['error']) ? $response['error'] : null;  
    if (!headers_sent()) 
    header('HTTP/1.0 ' . $oauthecho->resultHttpCode); 
    echo $message; 
    } 

Я загрузил несколько фотографий. Загрузка работает нормально, URL возвращается обратно в tweetbot. Однако ничто не добавляется в мой db. Помогите пожалуйста

+0

Вы не проверяли вывод 'mysql_error()' ... – PeeHaa

ответ

0

вы пытаетесь вставить в 2-х полей, но возвещать имя только одно поле:

INSERT INTO photo (link)VALUES ('$link','$tweet') 

вам нужно сделать что-то вроде:

INSERT INTO photo (link, tweet) VALUES ('$link','$tweet') 

вы можете использовать mysql_error, чтобы увидеть это в в следующий раз

+0

Я исправил это, но он все еще не работал. –

+0

Какая ошибка сейчас? , попробуйте mysql_error –

+0

работает для ссылки, но не смог получить твит http://d.pr/5Ths –

Смежные вопросы