我正在构建一个带有php的Twitter客户端,并在我尝试运行该程序时收到此错误消息。当我在本地运行它时,它似乎与服务器有关?我有php instlled。我使用Aptana作为我的IDE。有什么问题?
$url = "https://api.twitter.com/1.1/statuses/user_timeline.json";
$requestMethod = "GET";
if (isset($_GET['user'])) {$user = $_GET['user'];} else {$user = "hello";}
if (isset($_GET['count'])) {$count = $_GET['count'];} else {$count = 20;}
$getfield = '?screen_name=hello&count=20';
$twitter = new TwitterAPIExchange($settings);
$string = json_decode(
$twitter->setGetfield($getfield)->buildOauth($url, $requestMethod)->performRequest(), $assoc = TRUE
);
if($string["errors"][0]["message"] != "") {
echo "<h3>Sorry, there was a problem.</h3><p>Twitter returned the following error message:</p><p><em>" . $string[errors][0]["message"] . "</em></p>";
exit();
}
foreach($string as $items) {
echo "Time and Date of Tweet: ".$items['created_at']."<br />";
echo "Tweet: ". $items['text']."<br />";
echo "Tweeted by: ". $items['user']['name']."<br />";
echo "Screen name: ". $items['user']['screen_name']."<br />";
echo "Followers: ". $items['user']['followers_count']."<br />";
echo "Friends: ". $items['user']['friends_count']."<br />";
echo "Listed: ". $items['user']['listed_count']."<br /><hr />";
}
?>
错误消息:
Sorry, there was a problem.
Twitter returned the following error message:
".$string[errors][0]["message"]. "
";exit();} foreach($string as $items) { echo "Time and Date of Tweet: ".$items['created_at']."
"; echo "Tweet: ". $items['text']."
"; echo "Tweeted by: ". $items['user']['name']."
"; echo "Screen name: ". $items['user']['screen_name']."
"; echo "Followers: ". $items['user']['followers_count']."
"; echo "Friends: ". $items['user']['friends_count']."
"; echo "Listed: ". $items['user']['listed_count']."
视图源格式的错误消息:
<?php
require_once('TwitterAPIExchange.php");
$settings = array(
'oauth_access...
);
$url = "https://api.twitter.com/1.1/statuses/user_timeline.json";
$requestMethod = "GET";
if (isset($_GET['user'])) {$user = $_GET['user'];} else {$user = "iagdotme";}
if (isset($_GET['count'])) {$count = $_GET['count'];} else {$count = 20;}
$getfield = '?screen_name=iagdotme&count=20';
$twitter = new TwitterAPIExchange($settings);
$string = json_decode($twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest(),$assoc = TRUE);
if($string["errors"][0]["message"] != "") {echo "<h3>Sorry, there was a problem.</h3>
<p>Twitter returned the following error message:</p><p><em>".$string[errors][0]["message"].
"</em></p>";exit();}
foreach($string as $items)
{
echo "Time and Date of Tweet: ".$items['created_at']."<br />";
echo "Tweet: ". $items['text']."<br />";
echo "Tweeted by: ". $items['user']['name']."<br />";
echo "Screen name: ". $items['user']['screen_name']."<br />";
echo "Followers: ". $items['user']['followers_count']."<br />";
echo "Friends: ". $items['user']['friends_count']."<br />";
echo "Listed: ". $items['user']['listed_count']."<br /><hr />";
}
?>
有一条说明:Saw&#34; <?
&#34;。可能的原因:尝试在HTML中使用XML处理指令。 (HTML不支持XML处理说明。)
这是我正在关注的教程:https://iag.me/socialmedia/build-your-first-twitter-app-using-php-in-8-easy-steps/
答案 0 :(得分:3)
根据您的错误消息,您的PHP代码根本不会执行。这是PHP代码的纯HTML输出。
您的问题可能是配置您的Web服务器(apache,nginx,...)以解释PHP,或者在任何PHP代码之前添加缺少的开始标记(<?php
)。
答案 1 :(得分:0)
我使用不同的方法来访问Twitter的API,但在我看来,您可能只是请求用户ID而不是用户时间线。更改URL,使其如下所示:
$url = 'https://api.twitter.com/1.1/statuses/user_timeline.json';
$getfield = '?screen_name=J7mbo';
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
echo $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
答案 2 :(得分:0)
首先将$string[errors][0]["message"]
更改为$string["errors"][0]["message"]
。
然后您必须确保您的计算机上安装了PHP(供Web服务器使用)。 (Tutorials for PHP, MySQL and Apache | Tutorials for PHP, MySQL and nginx)
使用<?php
起始标记代替<?
。
您的浏览器似乎将您的PHP文件视为HTML文件。
答案 3 :(得分:0)
PHP可以运行,我能够在我有权访问的服务器上运行它。 为此,我需要的只是TwitterAPIExchange.php和您提交的PHP。 话虽如此,我建议你改变
$string[errors][0]["message"]
到
$string["errors"][0]["message"]
以便它可以正确返回错误 并且还要改变
$getfield = '?screen_name=iagdotme&count=20';
to(注意下面的双引号,这些很重要)
$getfield = "?screen_name=$user&count=$count";
以便您实际使用前面的变量。
问题可能在于在PC上运行文件;我建议找一个网络托管服务提供商。