2013-09-23 3 views
0

특정 사용자 이름은 PHP를 사용하여 트위터의 API를 쓰기 : 나는에 특정한 타임 라인 스트림을 생성하는 스크립트를 수정하는 방법내가 다음 자습서를 사용하여 트위터의 API를 응용 프로그램을 작성했습니다

http://www.youtube.com/watch?v=GQaPt-gQVRI

사용자는 (내가 응용 프로그램을 작성하기 때문에 내 트위터 자격 증명을 가지고 있기 때문에) 내 사용자의 타임 라인 스트림을 보여줍니다 실행되지 응용 프로그램

감사

는 PHP 응용 프로그램 내 t의 유효성을 확인하도록 로그인 할 수있는 사용자를 필요로

<?php 
require 'tmhOAuth.php'; // Get it from: https://github.com/themattharris/tmhOAuth 

// Use the data from http://dev.twitter.com/apps to fill out this info 
// notice the slight name difference in the last two items) 

$connection = new tmhOAuth(array(
    'consumer_key' => 'my key', 
    'consumer_secret' => 'my secret', 
    'user_token' => 'my token', //access token 
    'user_secret' => 'my user secret' //access token secret 
)); 

// set up parameters to pass 
$parameters = array(); 

if ($_GET['count']) { 
    $parameters['count'] = strip_tags($_GET['count']); 
} 

if ($_GET['screen_name']) { 
    $parameters['screen_name'] = strip_tags($_GET['screen_name']); 
} 

if ($_GET['twitter_path']) { $twitter_path = $_GET['twitter_path']; } else { 
    $twitter_path = '1.1/statuses/user_timeline.json'; 
} 

$http_code = $connection->request('GET', $connection->url($twitter_path), $parameters); 

if ($http_code === 200) { // if everything's good 
    $response = strip_tags($connection->response['response']); 

    if ($_GET['callback']) { // if we ask for a jsonp callback function 
     echo $_GET['callback'],'(', $response,');'; 
    } else { 
     echo $response; 
    } 
} else { 
    echo "Error ID: ",$http_code, "<br>\n"; 
    echo "Error: ",$connection->response['error'], "<br>\n"; 

그래서 API 호출에 새 사용자 이름을 통과하지 않고, 내가 어떻게이 조각을 추가 할 수 있습니다 Witter에 자격 증명은 다음 사용하고 계십니까? 사용자가 로그인 할 수 있도록 스 니펫을 추가하면 api가 사용자의 인증 문자열을 자동으로 채 웁니까?

+2

일부 코드를 표시하는 것은 어떻습니까? 나는 당신의 코드가 어떻게 보이는지 추측하기 위해 많은 사람들이 비디오를 보러 간다. – Novocaine

+0

다른 사용자의 타임 라인을 볼 수 없다고 확신합니다. 그것이 작동하는 방식이 아닙니다. 아시다시피, 프라이버시와 모든 것. 사용자가 앱을 사용하면 사용자가 앱을 볼 수 있도록 자격 증명을 제공합니다. –

+0

죄송합니다. 나는 Novocaine88을 서두 릅니다. 위의 업데이트 된 질문을 참조하십시오. –

답변

0

사용자 요청을 받으려면 다음 URL로 요청을 보내주십시오.

https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=twitterapi&count=2 

당신은 매개 변수를 액세스하려는 사용자 이름 SCREEN_NAME 대체 할 수있다, 당신은 당신이 얻을 싶은 트윗 수와 수를 대체 할 수있는, 수는 선택 사항이며 포함 할 필요가 없습니다.

당신은 사무실 트위터 API 사이트에서 상태/user_timeline에 대한 자세한 읽을 수 있습니다 : 로그인 할 사용자를 얻을하고자하는 경우 https://dev.twitter.com/docs/api/1.1/get/statuses/user_timeline

+0

위의 업데이트 된 질문을 참조하십시오. 사용자가 로그인해야하는 코드 스 니펫을 추가하고 API 호출로 해당 사용자의 인증 자격 증명을 가져 오겠습니까? –

0

것은 다음 가장 좋은 방법은 twitteroauth library by abraham

다운로드를 사용하고 것을 프로젝트에 포함시킨 다음 라이브러리를 포함시키고 세션을 시작하십시오.

require("twitteroauth/twitteroauth.php"); 
session_start(); 

그런 다음 새 인스턴스를 만들고 앱 세부 정보로 인증하십시오. 사용자가 인증 할 때 리디렉션 할 URL을 설정할 수 있습니다. 또한 토큰을 캐시해야합니다.

$twitteroauth = new TwitterOAuth('YOUR_CONSUMER_KEY', 'YOUR_CONSUMER_SECRET'); 
$request_token = $twitteroauth->getRequestToken('http://example.com/loggedin.php'); 

$_SESSION['oauth_token'] = $request_token['oauth_token']; 
$_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret']; 

는 사용자가 사용자가 만든 토큰을 사용하여 재 인증을 필요로 리디렉션 트위터 설정 파일에서

header('Location: '.$twitteroauth->getAuthorizeURL($request_token['oauth_token'])); 

를 인증하기 위해 트위터로 리디렉션. Twitter는 해당 사용자의 액세스 토큰을 만드는 데 사용하는 매개 변수를 URL에 추가합니다. 트위터하는 GET 요청을 보낼 때 지금, 그것은 로그인 한 사용자를 대신하여 그것을 않습니다.

require("twitteroauth/twitteroauth.php"); 
session_start(); 

$twitteroauth = new TwitterOAuth('YOUR_CONSUMER_KEY', 'YOUR_CONSUMER_SECRET', $_SESSION['oauth_token'], $_SESSION['oauth_token_secret']); 

$user_info = $twitteroauth->get('account/verify_credentials'); 
print_r($user_info); 

당신은 기억 할 수 있도록 데이터베이스에 추가하면 캐시 할 수 $user_info에서 세부 사항 또는 저장소를 얻을 수 있습니다 이미 인증 된 사용자. 다음과 같이 oauth_tokenoauth_secret을 사용해야합니다.

$twitteroauth = new TwitterOAuth('YOUR_CONSUMER_KEY', 'YOUR_CONSUMER_SECRET', 'OAUTH_TOKEN', 'OAUTH_SECRET'); 
관련 문제