如何使用最少的代码获得user_timeline?

手滑点了滑稽手滑点了滑稽提问于
梦飞翔758WEB工程师 硬件玩家 CHH不负责版主回答于

使用下面的代码,可以从一个点修改请求参数,避免输入和类似的错误。在returnTweet()函数中更改$request数组。

function buildBaseString($baseURI, $method, $params) {
    $r = array();
    ksort($params);
    foreach($params as $key=>$value){
        $r[] = "$key=" . rawurlencode($value);
    }
    return $method."&" . rawurlencode($baseURI) . '&' . rawurlencode(implode('&', $r));
}

function buildAuthorizationHeader($oauth) {
    $r = 'Authorization: OAuth ';
    $values = array();
    foreach($oauth as $key=>$value)
        $values[] = "$key=\"" . rawurlencode($value) . "\"";
    $r .= implode(', ', $values);
    return $r;
}

function returnTweet(){
    $oauth_access_token         = "x";
    $oauth_access_token_secret  = "x";
    $consumer_key               = "x";
    $consumer_secret            = "x";

    $twitter_timeline           = "user_timeline";  //  mentions_timeline / user_timeline / home_timeline / retweets_of_me

    //  create request
        $request = array(
            'screen_name'       => 'budidino',
            'count'             => '3'
        );

    $oauth = array(
        'oauth_consumer_key'        => $consumer_key,
        'oauth_nonce'               => time(),
        'oauth_signature_method'    => 'HMAC-SHA1',
        'oauth_token'               => $oauth_access_token,
        'oauth_timestamp'           => time(),
        'oauth_version'             => '1.0'
    );

    //  merge request and oauth to one array
        $oauth = array_merge($oauth, $request);

    //  do some magic
        $base_info              = buildBaseString("https://api.twitter.com/1.1/statuses/$twitter_timeline.json", 'GET', $oauth);
        $composite_key          = rawurlencode($consumer_secret) . '&' . rawurlencode($oauth_access_token_secret);
        $oauth_signature            = base64_encode(hash_hmac('sha1', $base_info, $composite_key, true));
        $oauth['oauth_signature']   = $oauth_signature;

    //  make request
        $header = array(buildAuthorizationHeader($oauth), 'Expect:');
        $options = array( CURLOPT_HTTPHEADER => $header,
                          CURLOPT_HEADER => false,
                          CURLOPT_URL => "https://api.twitter.com/1.1/statuses/$twitter_timeline.json?". http_build_query($request),
                          CURLOPT_RETURNTRANSFER => true,
                          CURLOPT_SSL_VERIFYPEER => false);

        $feed = curl_init();
        curl_setopt_array($feed, $options);
        $json = curl_exec($feed);
        curl_close($feed);

    return json_decode($json, true);
}

然后调用returnTweet()

回答过的其他问题

做小程序用得上哪些云服务?

梦飞翔758WEB工程师 硬件玩家 CHH不负责版主
分两种情况:新开发的小程序,或者有一定规模的小程序 新开发的小程序推广起来需要一个过程,前期用一个普通双核,2G内存以上配置的云主机基本就能满足需求.云主机也可以中途升级配置. 有一定规模的小程序.则需要根据规模和访问量的大小来决定选择什么样的配置.如果...... 展开详请

如何寻找最适合自身的云应用模式?

梦飞翔758WEB工程师 硬件玩家 CHH不负责版主
1.“私有云”模式就是自己购买部署自己的“CRM”系统,自己维护自己的服务资源。这种模式适合有足够实力的企业公司选用,因为这类型的企业公司会忽略成本因素。对于大多数中小企业不太适合,为什么呢?因为他们要考虑成本,降低成本和提高收入是企业追求的永恒目标。下面从优点和缺点二个角度进行...... 展开详请

如何解决吃鸡中的卡顿问题?

梦飞翔758WEB工程师 硬件玩家 CHH不负责版主

也可能是你的内存出了问题,内存对吃鸡影响很大。《绝地求生》的官方最低推荐配置为8GB,但其实8G不足以满足需求,内存容量将直接影响《绝地求生》的帧数波动!

如何利用腾讯云冷迁移工具将主机迁移至云主机CVM中?

梦飞翔758WEB工程师 硬件玩家 CHH不负责版主
这里有一个冷迁移实例。用于将一个系统盘镜像迁移到一个实例中。用户需要首先在腾讯云创建一个实例,然后通过本接口将需要运行的操作系统系统盘镜像迁移到该实例,实例的配置信息保持不变。 注意:为了防止兼容性错误,建议用户在创建实例的时候尽量选取与需要迁移的系统盘相似的操作系统。 输入...... 展开详请

什麼是消息推送 ?

梦飞翔758WEB工程师 硬件玩家 CHH不负责版主

消息推送简单的说就是一组实现RESTAPI的推送标签~

cos-nodejs-sdk-v5 找不到getObjectUrl接口的说明?

梦飞翔758WEB工程师 硬件玩家 CHH不负责版主

关于作者

所属标签

扫码关注云+社区

领取腾讯云代金券