我已经用 php 构建了一个 Twitter 机器人,它能够接收消息并响应消息,但出现了这个问题。当我向机器人发送消息时,我必须刷新机器人脚本才能让机器人回复。我希望机器人能够不断检查任何新传入的消息并做出相应的响应。我该如何修复这个错误?
这是我的代码 -
<?php
ini_set('display_errors', 1);
require_once('twitterapiexchange.php');
require_once("twitteroauth.php");
$settings = array(
'oauth_access_token' => "XXXXXXXXXXXX",
'oauth_access_token_secret' => "XXXXXXXXXXXX",
'consumer_key' => "XXXXXXXXXXXX",
'consumer_secret' => "XXXXXXXXXXXX");
$url = 'https://api.twitter.com/1.1/direct_messages.json';
$getfield = '?since_id=240136858829479935&count=1';
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
$string = json_decode($twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest(),$assoc = TRUE);
foreach($string as $items)
{
$url = 'https://api.twitter.com/1.1/direct_messages/show.json?';
$requestMethod = 'GET';
$getfields = array('id' => $items['id']);
$twitter = new TwitterAPIExchange($settings);
$do = $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();
echo "<strong>Teet:</strong> ".$items['text']."<br />";
$senderId = $items['sender_id'];
$messageText = $items['text'];
$timeStamp = $items['created_at'];
$recipentId = $items['recipient_id'];
$messageId = $items['id'];
$screenname=$items['sender_screen_name'];
if(!empty($messageText)) {
$json = file_get_contents('https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452');
$obj = json_decode($json);
//var_dump($obj->results[0]->formatted_address);
$addr = $obj->results[0]->formatted_address;
$answer = "You said ".$messageText . " " .$addr;
echo "<strong>Answer:</strong> ".$answer."<br />";
$api_key='XXXXXXXXXXXX' ;
$api_secret= 'XXXXXXXXXXXX' ;
$access_token = 'XXXXXXXXXXXX';
$access_token_key='XXXXXXXXXXXX' ;
$connection = new TwitterOAuth($api_key,$api_secret, $access_token, $access_token_key);
$connection->post('direct_messages/new', array('user_id' => $senderId, 'text' => $answer));
}
//var_dump(json_encode($items, true));
}
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)