为什么我在Twitter的会话视图中看不到我的@replies?

时间:2013-07-26 09:49:23

标签: twitter twitter-oauth

我需要回复一个特定的推特状态。我正在使用以下功能。我在php中使用了亚伯拉罕的twitteroauth库。

public function  replyToTwitterStatus($user_id,$status_id,$twitt_reply,$account_name)
{                       
       $connection= $this->getTwitterConnection($user_id,$account_name);                
        try{
           $responce = $this->postApiData('statuses/update', array('status' => $twitt_reply,'in_reply_to_status_id '=> $status_id),$connection);
        }
        catch(Exception $e){
            echo $message = $e->getMessage();
            exit;                  
        }             
}

// this function will handle all post requests
// To post/update twitter data

// To post/update twitter data

public function postApiData($request,$params = array(),$connection)
{         
    if($params == null)
    {
        $data = $connection->post($request);    
    }
    else
    {       

        $data = $connection->post($request,$params);
    }

    // Need to check the error code for post method      
    if($data->errors['0']->code == '88' || $data->errors['0']->message == 'Rate limit exceeded')
    {
        throw new Exception( 'Sorry for the inconvenience,Please wait for minimum 15 mins. You exceeded the rate limit');
    }
    else
    {
        return $data;
    }                  
}

但问题是它不是维持对话视图,而是像正常状态更新,例如@abraham你好,你好吗?但“观看对话”并未到来。就像扩展菜单不会来。

请做好 感谢

1 个答案:

答案 0 :(得分:1)

您的 in_reply_to_status_id 键中有一个不需要的空间,导致该参数被忽略。

这个电话:

$responce = $this->postApiData('statuses/update', array(
  'status' => $twitt_reply,
  'in_reply_to_status_id ' => $status_id
), $connection);

应如下所示:

$responce = $this->postApiData('statuses/update', array(
  'status' => $twitt_reply,
  'in_reply_to_status_id' => $status_id
), $connection);

此外,请确保将 $ status_id 变量作为字符串处理。虽然它们看起来像数字,但是大多数ID太大而不能在php中表示为整数,所以它们最终会被转换为浮点数,而这些浮点数无效。

最后,请确保在状态文本中包含您要回复的人的用户名。引用 in_reply_to_status_id 参数的documentation

  

注意::除非在状态文本中提到了推荐此参数引用的作者,否则将忽略此参数。因此,您必须在更新中包含@username,其中username是引用的推文的作者。