POST方法中的ID int限制

时间:2016-03-29 12:58:22

标签: php twitter

我使用此库https://github.com/J7mbo/twitter-api-php来使用Twitter API。

我使用.csv传递推文ID,使用GET(showids.php)工作正常:

    <?php
    require('TwitterAPIExchange.php');
    require("auth.php");
    $fichero=fopen("tweets.csv","r");
    while(!feof($fichero)){
        $linea=fgets($fichero);
        $id=(substr($linea,1,18));
        echo ($id."<br />");
        $url = "https://api.twitter.com/1.1/statuses/show.json";
        $requestMethod = "GET";
        $getfield = '?id='.$id;
        $twitter = new TwitterAPIExchange($settings);
        $response = $twitter->setGetfield($getfield)
            ->buildOauth($url, $requestMethod)
        ->performRequest();
    print_r($response);
    echo("<br />");
}
fclose($fichero);

但是当我使用POST方法(delids.php)时,它会在int限制下删除Tweet ID。

<?php
require('TwitterAPIExchange.php');
require("auth.php");
$fichero=fopen("tweets.csv","r");
while(!feof($fichero)){
    $linea=fgets($fichero);
        $tid=substr($linea,1,18);
    echo ($tid."<br />");
    $url = sprintf('https://api.twitter.com/1.1/statuses/destroy/%d.json',$tid);
    echo ($url."<br />");
    $method = 'POST';
    $params = array(
    'id'=>$tid,
    );
    $twitter = new TwitterAPIExchange($settings);
    echo $twitter->buildOauth($url,$method)
        ->setPostfields($params)
        ->performRequest();
    echo("<br />");
}
fclose($fichero);

IMG,错误:int limit

1 个答案:

答案 0 :(得分:1)

不要使用sprintf,而只需通过连接字符串来添加id:

$url = 'https://api.twitter.com/1.1/statuses/destroy/'.$tid.'.json');

我觉得应该有用。

可在此处找到一些解释: http://php.net/manual/en/function.sprintf.php d接受一个整数,这就是为什么它以最大整数值切断它。

  

d - 将参数视为整数,并显示为(带符号)   十进制数。