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

手滑点了滑稽手滑点了滑稽提问于
人生的旅途辣鸡前端回答于

对我来说,问题是密码编码。因此,在您的代码中,它是下面一行

$url .= "?".http_build_query($query);

我在下面添加了以下一行:

$url=str_replace("&","&",$url);

它使用两个或多个参数(如屏幕)工作。[医]名字和数量。

整个代码如下所示:

$token = 'YOUR TOKEN';
$token_secret = 'TOKEN SECRET';
$consumer_key = 'YOUR KEY';
$consumer_secret = 'KEY SECRET';

$host = 'api.twitter.com';
$method = 'GET';
$path = '/1.1/statuses/user_timeline.json'; // api call path

$query = array( // query parameters
    'screen_name' => 'twitterapi',
    'count' => '2'
);

$oauth = array(
    'oauth_consumer_key' => $consumer_key,
    'oauth_token' => $token,
    'oauth_nonce' => (string)mt_rand(), // a stronger nonce is recommended
    'oauth_timestamp' => time(),
    'oauth_signature_method' => 'HMAC-SHA1',
    'oauth_version' => '1.0'
);

$oauth = array_map("rawurlencode", $oauth); // must be encoded before sorting
$query = array_map("rawurlencode", $query);

$arr = array_merge($oauth, $query); // combine the values THEN sort

asort($arr); // secondary sort (value)
ksort($arr); // primary sort (key)

// http_build_query automatically encodes, but our parameters
// are already encoded, and must be by this point, so we undo
// the encoding step
$querystring = urldecode(http_build_query($arr, '', '&'));

$url = "https://$host$path";

// mash everything together for the text to hash
$base_string = $method."&".rawurlencode($url)."&".rawurlencode($querystring);

// same with the key
$key = rawurlencode($consumer_secret)."&".rawurlencode($token_secret);

// generate the hash
$signature = rawurlencode(base64_encode(hash_hmac('sha1', $base_string, $key, true)));

// this time we're using a normal GET query, and we're only encoding the query params
// (without the oauth params)
$url .= "?".http_build_query($query);
$url=str_replace("&","&",$url); //Patch by @Frewuill

$oauth['oauth_signature'] = $signature; // don't want to abandon all that work!
ksort($oauth); // probably not necessary, but twitter's demo does it

// also not necessary, but twitter's demo does this too
function add_quotes($str) { return '"'.$str.'"'; }
$oauth = array_map("add_quotes", $oauth);

// this is the full value of the Authorization line
$auth = "OAuth " . urldecode(http_build_query($oauth, '', ', '));

// if you're doing post, you need to skip the GET building above
// and instead supply query parameters to CURLOPT_POSTFIELDS
$options = array( CURLOPT_HTTPHEADER => array("Authorization: $auth"),
                  //CURLOPT_POSTFIELDS => $postfields,
                  CURLOPT_HEADER => false,
                  CURLOPT_URL => $url,
                  CURLOPT_RETURNTRANSFER => true,
                  CURLOPT_SSL_VERIFYPEER => false);

// do our business
$feed = curl_init();
curl_setopt_array($feed, $options);
$json = curl_exec($feed);
curl_close($feed);

$twitter_data = json_decode($json);

希望这能帮到和我一样问题的人。

回答过的其他问题

想在APP中接入实时通信功能,包括视频聊天,应该选移动直播还是互动直播呢?

人生的旅途辣鸡前端
这个主要取决于你的需求和应用场景,移动直播和互动直播均有相关的产品体验,你可以体验一下,那一种适合你自己的需求,从而做出决断 附: 互动直播体验地址:https://cloud.tencent.com/document/product/268/9081 移动直播体验地址:htt...... 展开详请

wafer2能够连接到其他外部服务器上的数据库吗?

人生的旅途辣鸡前端

可以的,程序并不是封闭的

1.小程序只是提供了一种技术框架,并没有限制你的网络交互 2.小程序配置后台可以配置自己的域名等信息,让开发者自己联通自己的服务

不过不建议这么做

目前都有哪些值得关注的红包玩法?

人生的旅途辣鸡前端
这个多了,我都准备过年宅在家里薅羊毛了,红包有非常多,比如微信的黄金红包,不过好像还在是灰度内测阶段,多久全民开放就不知道了,微信的线下支付得随机红包,和支付宝的线下支付红包,这俩个大众都应该知道了,前不久刚刚火过一遍的,你也可以关注微信的红包店微信小程序,可以抢好友的红包,玩法...... 展开详请

可否自动调用发送定时短信?

人生的旅途辣鸡前端
可以使用crontab+php发送短信来实现 1. crontab   间隔设置小点  比如每分钟执行一次 查询生日信息 给用户发信息 2.守护进程+队列的方式    php  sendmail.php &  sendmail.php中大致结构如下 while(true){ //...... 展开详请

IMSDK到底是用TLS登录还是用TIMManager来登录?

人生的旅途辣鸡前端
这个要看你的使用场景,看以下文档解释: 如果你的 App 自主维护用户的注册、用户身份的验证,则应当使用 独立模式; 如果您只是想快速开发一个 App 原型,云通信可以为您提供一套符合业界通用安全标准的用户体系,用户的注册、用户身份的验证将全部由云通信提供,此时应当选用 托管模式...... 展开详请

windows server Apache 证书部署/httpd-ssl.conf 文件怎么修改?

人生的旅途辣鸡前端
登入到windows server ,打开conf/httpd.conf配置文件 找到#LoadModule ssl_module modules/mod_ssl.so和#Include conf/extra/httpd-ssl.conf,去掉前面的#号注释; 然后编辑Apach...... 展开详请

关于作者

所属标签

扫码关注云+社区

领取腾讯云代金券