2012-03-01 59 views
0

我有一個帶有文本框和按鈕的頁面,我想發佈到twitter文本框的內容。使用jmathai-twitter-async的庫更新ajax調用中的twitter狀態

我已經創建了一個dev.twitter應用程序,我先檢查用戶是否已經驗證過了,然後我添加以下到按鈕的單擊事件:

//sending message 
$.post('postStatus.php',{ 
    status:message 
    },function(response){ 
    $("#debug").html(response); 
}); 

文件postStatus.php是(初稿):

<?php 
    require_once 'EpiCurl.php'; 
    require_once 'EpiOAuth.php'; 
    require_once 'EpiTwitter.php'; 
    require_once 'secret.php'; 

    //is connected ? 
    /* 
    $twitterObj = new EpiTwitter($consumerKey, $consumerSecret); 
    $oauth_token = @$_GET['oauth_token']; 
    if($oauth_token == '') 
     die(); 
    */ 

    //validate message 
    [email protected]$_POST['status']; 
    $message = trim($message); 
    if ($message === '') 
     die(); 

    //send 
    $twitterObj->setToken($_COOKIE['oauth_token'],$_COOKIE['oauth_token_secret']); 
    $status=$twitterObj->post_statusesUpdate(array('status' => $message)); 
    $status->response; 
    echo 'Your status has been updated'; 

我在驗證$message時丟失了什麼嗎?如果有的話,我應該在try/catch塊中包含哪些內容?最後,我應該有postStatus.php返回500錯誤,或者是die()好嗎?

+0

$ consumerKey和$ consumerSecret在所需的secret.php中定義 – Manu 2012-03-01 10:04:07

回答

1

在您的PHP $consumerKey$consumerSecret未定義+ $_GET['oauth_token']將永遠不會被設置,因爲您的js中的url是靜態的。

此外,您可能想在轉發之前轉義狀態。

+0

糟糕,我從另一個文件複製了「is connected」部分><。但是consumerKey和Secret在需要的secret.php – Manu 2012-03-01 10:03:48

+0

中有定義,那麼我所看到的唯一問題是'$ _GET ['oauth_token']'因爲js中的靜態url而一直是空的。 – 2012-03-01 10:04:59