我创建了一个小型 Web 应用程序,其功能是能够通过连接 OAuth 使用 Twitter 帐户登录。它像魅力一样工作了几个月,但现在它停止了工作。这是一个快速总结的“使用 twitter 登录”算法的概述。
- 收集一些参数(时间戳、随机数、某种应用程序 ID 等)
- Use this parameters to create a new URL that looks like this: https://api.twitter.com/oauth/request_token?oauth_consumer_key=DLZZTIxpY19FnWJNtqw5A&oauth_nonce=1369452195&oauth_signature=DIetumiKqJu66XXVvDDHdepnP9M%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1369452195&oauth_version=1.0
- 连接到该 URL 并检索数据,它有一个访问令牌
- 继续使用该访问令牌做有趣的事情。
第 2 步中生成的 URL 很好,因为我尝试在 Google Chrome 中手动复制它,它显示了一个漂亮的访问令牌,所以问题不存在(我认为)。在第 3 步中,我有一个非常小的方法,它应该做一些非常基本的事情:连接到之前生成的 URL,检索内容并返回它。
在我使用 EasyPHP 12.1 的本地主机中,它像往常一样完美地工作,但在我使用的免费主机(000webhost)中它不再工作了。尝试连接时,它只是超时。HTTPCodeError 为 0,CurlError 为“无法连接到主机”。
这是用于连接到 URL 的方法。
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$http_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$response = curl_exec($ch);
curl_close($ch);
return $response;
And this is an example of a URL used with that method: https://api.twitter.com/oauth/request_token?oauth_consumer_key=DLZZTIxpY19FnWJNtqw5A&oauth_nonce=1369452195&oauth_signature=DIetumiKqJu66XXVvDDHdepnP9M%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1369452195&oauth_version=1.0
我整天都在尝试修复它,但现在我什至不知道该尝试什么。我的本地主机和 000webhost 中的文件完全相同。如果你能启发我,我会很高兴。如果需要,我会脱下裤子寻求答案。非常感谢。