3

特定の 1 つの Twitter ステータスに返信する必要があります。私は次の機能を使用しています。そして、php で Abraham の 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 こんにちは、お元気ですか などの通常のステータスのように更新されることです。しかし、その「会話を見る」は来ていません。拡張メニューが来ていないようです。

必要なことをしてください ありがとう

4

1 に答える 1

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パラメータのドキュメントからの引用:

注:: このパラメーターが参照するツイートの作成者がステータス テキスト内で言及されていない限り、このパラメーターは無視されます。したがって、@username (username は参照されたツイートの作成者) を更新内に含める必要があります。

于 2013-08-02T21:46:02.267 に答える