2013-06-11 2 views
27

나는 트위터를 일반적으로 사용하는 것에 전혀 익숙하지 않으며 어떤 프로젝트에도 "최신 트윗"을 포함시키지 않았습니다. 나는 단순히 기능의 추가 기능없이 사이트 바닥 글에 3-4 개의 최신 트윗을 포함하려고합니다. 저는 지금 당분간이 문제를 해결하는 데 어려움을 겪고 있습니다.트위터 API 설정하기, 마지막 몇 트윗 가져 오기

다음 코드 스 니펫을 프로젝트에 추가했는데 잘 작동합니다. 그러나 스 니펫을 업데이트하여 내 트위터 계정을 사용하는 대신 내 트위터 계정을 사용하는 방법을 모르겠습니다. 또한

<div id="twitter_update_list"> 
    </div> 
    <script type="text/javascript" src="http://api.twitter.com/1/statuses/user_timeline.json?screen_name=stackoverflow&include_rts=true&count=4&callback=twitterCallback2"> 
    </script> 

, 나는 타사와 달리 가장 일반적으로 사용되는 트위터 API는 트위터가 사람들이 자신을 사용하고 싶어하기 때문에 빨리 작동이 중지됩니다 것을 읽는 계속.

여기서부터 어떻게 진행해야할지 모르겠습니다. 나는이 점에 대해 어떤 제안도 크게 감사 할 것입니다. 요약하면, 내 계정에서 3-4 개의 최신 트윗을 가져 오는 것입니다.

미리 감사드립니다.

+0

자바 스크립트 전용 솔루션이 필요한 경우 Jason Mayes http://jasonmayes.com/의 Twitter-Post-Fetcher를 사용할 수 있습니다. projects/twitterApi/며칠 내로 새로운 직업에 도전 해 보겠다. 오늘은 ag 누가 서버 쪽에서 일할 수 없는지에 대한 ood 방법. –

답변

59

정말이 클라이언트 측을 더 이상하고 싶지 않습니다. (그냥 수많은 문서를 통해 가고, DEVS 모든 OAuth를 서버 측을하는 것이 좋습니다)

당신이해야 할 일은 :

먼저 : https://dev.twitter.com에 가입하고, 새로운 응용 프로그램을 확인합니다.

둘째 : 참고 : 액세스 토큰과 함께 귀하의 소비자 키/비밀/비밀

셋째 : 나는 PHP 라이브러리 https://github.com/abraham/twitteroauth 사용이 경우 트위터의 OAuth 라이브러리 (다운로드, 추가 라이브러리 여기에 있습니다 : https://dev.twitter.com/docs/twitter-libraries)

넷째 : (확인 컬이 램프에서 실행중인 여기 당신이 필요로하는 명령의 경우, 활성화되어 있는지 확인) PHP를 사용하는 경우 :

다섯 번째

가 : 새로운 PHP 파일을 확인하고 다음 삽입 : 톰 엘리엇 http://www.webdevdoor.com/php/authenticating-twitter-feed-timeline-oauth/

<?php 
session_start(); 
require_once("twitteroauth/twitteroauth/twitteroauth.php"); //Path to twitteroauth library you downloaded in step 3 

$twitteruser = "twitterusername"; //user name you want to reference 
$notweets = 30; //how many tweets you want to retrieve 
$consumerkey = "12345"; //Noted keys from step 2 
$consumersecret = "123456789"; //Noted keys from step 2 
$accesstoken = "123456789"; //Noted keys from step 2 
$accesstokensecret = "12345"; //Noted keys from step 2 

function getConnectionWithAccessToken($cons_key, $cons_secret, $oauth_token, $oauth_token_secret) { 
    $connection = new TwitterOAuth($cons_key, $cons_secret, $oauth_token, $oauth_token_secret); 
    return $connection; 
} 

$connection = getConnectionWithAccessToken($consumerkey, $consumersecret, $accesstoken, $accesstokensecret); 

$tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=".$twitteruser."&count=".$notweets); 

echo json_encode($tweets); 
echo $tweets; //testing remove for production 
?> 

그리고 붐에 감사합니다, 당신은 완료됩니다. 이것이 순수한 js 솔루션은 아니지만 다시 새로운 Twitter API 1.1 문서를 통해 읽음으로써이 클라이언트 사이트를 실제로 원하지 않는다는 것을 알고 있습니다. 희망이 도움이!

+0

답장을 보내 주셔서 감사합니다! Thats는 3 개의 트윗을 가져올 것으로 예상되는 것보다 더 많은 일을하지만, 내가해야할 일을해야합니다;) 나는 이것을 시도하고 다시 체크 할 것입니다. – AnchovyLegend

+0

"dev.twitter.com에 가입하십시오"라고 할 때 - 트윗을 올리려는 계정 (고객의 acc) 또는 다른 계정 (즉, 자신의 계정)으로해야합니까? – NickG

+0

@NickG 아니오 트위터 계정 만 있으면됩니다. 위의 다섯 번째 단계의 링크에 설명되어 있습니다. – Mac

-14

실제로 트위터에는 많은 제한이 있습니다. Nike와 같은 회사의 많은 콘테스트가 있기 때문입니다. 짹짹의 독서는 최신 API를 통해 독서 중이라면 시간이 조금 뒤처져 있다는 의미에서 제한적입니다.

그들은 DM 지연을 제어했습니다. 즉, DM을 즉시 수행 할 수 없다는 것을 의미합니다. 상대방은 X 시간 후에 만 ​​수신합니다. 스크립트를 통해 할 경우, 심지어 하나의 IP 트위터에서 많은 것을 시도해도 단순히 당신을 차단할 것입니다.핵심 PHP 기능을 전용 (CURL이나 트위터의 OAuth 라이브러리 필요)와 사용자의 지난 몇 트윗을 얻을 수있는 방법

22

:

  1. 것은 당신의 응용 프로그램/웹 페이지를 등록 https://apps.twitter.com (당신은 귀하의 개인 계정 이동을 확인해야 할 수 있습니다 숫자도)

  2. 주 소비자 키 및 소비자 비밀

  3. PHP 코드 :

    // auth parameters 
    $api_key = urlencode('REPLACEWITHAPPAPIKEY'); // Consumer Key (API Key) 
    $api_secret = urlencode('REPLACEWITHAPPAPISECRET'); // Consumer Secret (API Secret) 
    $auth_url = 'https://api.twitter.com/oauth2/token'; 
    
    // what we want? 
    $data_username = 'Independent'; // username 
    $data_count = 10; // number of tweets 
    $data_url = 'https://api.twitter.com/1.1/statuses/user_timeline.json?tweet_mode=extended'; 
    
    // get api access token 
    $api_credentials = base64_encode($api_key.':'.$api_secret); 
    
    $auth_headers = 'Authorization: Basic '.$api_credentials."\r\n". 
           'Content-Type: application/x-www-form-urlencoded;charset=UTF-8'."\r\n"; 
    
    $auth_context = stream_context_create(
        array(
         'http' => array(
          'header' => $auth_headers, 
          'method' => 'POST', 
          'content'=> http_build_query(array('grant_type' => 'client_credentials',)), 
         ) 
        ) 
    ); 
    
    $auth_response = json_decode(file_get_contents($auth_url, 0, $auth_context), true); 
    $auth_token = $auth_response['access_token']; 
    
    // get tweets 
    $data_context = stream_context_create(array('http' => array('header' => 'Authorization: Bearer '.$auth_token."\r\n",))); 
    
    $data = json_decode(file_get_contents($data_url.'&count='.$data_count.'&screen_name='.urlencode($data_username), 0, $data_context), true); 
    
    // result - do what you want 
    print('<pre>'); 
    print_r($data); 
    

확장 있는지 확인이 해당하려면 openssl이 해결하려면 php.ini의

에 사용할 수 없습니다 수 있습니다와 Windows 및 Centos6 기본 설치에 대한 XAMPP (PHP 5.3)

가장 가능성이 높은 문제를 테스트 = php_openssl.dll 또는 extension = php_openssl.so 행은 php.ini에 존재하고 주석 처리되지 않았습니다.

+0

고마워요 @ 라울리! 내가 할 수있는 경우 더 upvote :) 다른 사람에게 : 현재, 트위터 액세스 토큰이 만료되지 않습니다 : http://stackoverflow.com/questions/8357568/do-twitter-access-token-expire, https : // dev. twitter.com/oauth/overview/faq – Ben

관련 문제