방금 새 호스트로 웹 사이트를 설정하고 비트와 밥을 업로드하여 특정 사용자의 트윗이 깨지는 것을 알 수있었습니다. 나는 내가 트위터 API에 150 콜의 한도를 초과했다는 말을 들었다.1 시간/1 시간 만 지났는데도 트위터 통화가 많습니다.
내가 모든 것을 테스트하고 많은 페이지를 다시로드 할 때이 의미가되었을 수 있습니다. 그러나 나는 오늘 단지 두어 번의 시도를 해왔지만, 내가 얻은 모든 것은 똑같은 오류입니다. 심지어 코드를 다시 작성하여 1 시간 동안 요청한 모든 트윗을 캐시 했으므로 대부분 한 시간에 한 번만 호출했지만 여전히 변경되지는 않았습니다. 트윗을 가져오고 캐시하고 가져 오는 데 사용하는 코드를 사용합니다.
function getUrl($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
$content = curl_exec($ch);
curl_close($ch);
return $content;
}
function getContent($file, $url, $hours = 1)
{
//vars
$CurrentTime = time();
$ExpireTime = $hours * 60 * 60;
$FileTime = filemtime($file);
if(file_exists($file) && ($CurrentTime - $ExpireTime < $FileTime))
{
//echo 'returning from cached file';
return json_decode(file_get_contents($file), true);
}
else
{
$content = getUrl($url);
$fh = fopen($file, 'w');
fwrite($fh, $content);
fclose($fh);
//echo 'retrieved fresh from '.$url.':: '.$content;
return json_decode($content, true);
}
}
$NumTweets = 3;
$AccountName = "TWITTERUSERNAME"; //this can be any username
$URL = "https://api.twitter.com/1/statuses/user_timeline.json?include_entities=true&include_rts=true&screen_name=".$AccountName."&count=".$NumTweets;
$XML = getContent('./lib/inc/tweets.txt', $URL);
그런 다음 다음과 같이 작성한 트윗과 시간을 정의한 다음 유사한 방식으로 인쇄합니다.
for($i = 0; $i < $NumTweets; $i++)
{
$Tweet['text'][$i] = formatTwitString($XML[$i]['text']);
$Tweet['time'][$i] = formatTwitTime($XML[$i]['created_at']);
}
포맷 기능은 관련이없는 나는 그들이 잘 작동 알고있다.
제가 수동으로 브라우저에 생성 된 $ URL var를 입력하면 문제가없는 트윗을로드 할 수 있습니다. 웹 사이트를 통해로드 할 때만 오류가 발생합니다. 콘텐츠를이 방법을 사용하고 다른 웹 서버의 파일에 저장하고 트위터 $ URL을 다른 서버 URL로 바꾸면 괜찮습니다.
그래서 내 코드가 잘못됐다고 생각하지 않지만 어떻게 든 내 트위터 이 호스트를 다른 웹 사이트 (iPage.com)로 사용할 수 있습니까? 조금 길어졌습니다. 도와주세요, 고마워요.
확실하지 않지만 사용자 에이전트를 변경하려고 시도 할 수는 있지만 jitter를 잡아서 반환하는 다른 서버 (꼬임이있는 무료 서버)에 넣을 수있는 작은 API 스크립트를 만들 수는 없습니다. 주 스크립트에서 배열을 가지고 무작위로 API를 선택하고 결과/오류를 확인하거나 다른 것을 시도 할 수 있습니다. 짐을 퍼 뜨리고있어. –
불행히도 그 도움이되지 않은 임의의 사용자 에이전트 배열을 사용해 보았습니다. 당신이 제안한대로 트윗을 제공하기 위해 다른 웹 사이트를 사용하고 싶지는 않지만 작동하는 빠른 테스트를 사용하고, 느린 초기의 트윗 캐싱 이후에는 빠르지 만 이상적으로는 여전히 트윗을 얻고 있습니다. 트위터에서 직접. – Novocaine