>

Twitter API에 문제가 있으며 일반적으로 OAuth를 이해하고 있습니다. 계정에서 정보를 쉽게 가져 오도록 요청할 수 있습니다. 내가 가진 문제는 "Twitter로 로그인"을 사용하는 다른 사용자에게 있습니다. 로그인 한 후 다른 사용자 정보를 얻을 수 있지만 다른 .php 페이지에 대한 정보로 별도의 요청을 할 수는 없습니다 (MySQL에서 정보를 가져 오지는 않습니다). 그들이 로그인하고 페이지가로드 된 후에는 원래 .php 페이지에서 한 번만 정보를 얻을 수 있습니다.

일부 코드를 게시하지만내 주요 관심사/질문은입니다. 사용자 액세스 토큰 정보를 저장 (및 재사용)하거나 사용자 로그인을해야합니까? 매번 자신의 계정에서 정보를 가져 오도록 인증합니까? 이것을 이해하는 데 어려움이 있습니다. 매번 로그인하지 않아도 사용자 대신 요청을하기 위해 어떤 정보를 저장할 수 있습니까?

코드 예 :

require "autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;
define('CONSUMER_KEY', 'my consumer key');
define('CONSUMER_SECRET', 'secret');
define('OAUTH_CALLBACK', 'API/Twitter/Twitter.php');
$access_token = 'beep boop boop beep';
$access_token_secret = 'super secret';
session_start();

if (isset($_SESSION['oauth_token'])) {
    $oauth_token = $_SESSION['oauth_token'];
    echo "<div style='background-color:white; width:100%;'>";
    echo $oauth_token; echo "</div>";
    unset($_SESSION['oauth_token']);
    $connection = new Abraham\TwitterOAuth\TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
    $params = array("oauth_verifier" => $_GET['oauth_verifier'], 'oauth_token' => $_GET['oauth_token']);
    $access_token = $connection->oauth('oauth/access_token', $params);
    $connection = new Abraham\TwitterOAuth\TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token['oauth_token'], $access_token['oauth_token_secret']);
    $content = $connection->get('account/verify_credentials');
    //Printing the profile data
    //print_r($content);
    $TimeLine = $connection->get("statuses/user_timeline", ["screen_name"=>$content->screen_name, "count"=>10]);
    echo "<br><br><br>";
    echo "<div style='width:100%; background-color:red; height:auto;'>";
    print_r($connection);
    echo "</div>";
    //print_r($TimeLine);
} else {
    $connection = new Abraham\TwitterOAuth\TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
    $temporary_credentials = $connection->oauth('oauth/request_token', array("oauth_callback" => $callback));
    $_SESSION['oauth_token'] = $temporary_credentials['oauth_token'];
    $_SESSION['oauth_token_secret'] = $temporary_credentials['oauth_token_secret'];
    $url = $connection->url('oauth/authenticate', array('oauth_token' => $temporary_credentials['oauth_token']));
}

  • 답변 # 1

    대신 사용자 정보에 대한 액세스를 유지하기 위해 필요한 것은 생성 된oAuth 토큰 및 oAuth 토큰 비밀입니다. 위에 나와있는 특별한 경우에는 단계가

    $connection = new Abraham\TwitterOAuth\TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, USER_oAuth_TOKEN, USER_oAuth_TOKEN_SECRET);
    $content = $connection->get('account/verify_credentials');
    
    

    CONSUMER_KEY 및 CONSUMER_SECRET 응용 프로그램이 필요합니다. 누군가 트위터에 로그인하면oAuth 토큰과 oAuth 토큰 비밀을 저장해야합니다. 이 정보가 있으면 (데이터베이스에 저장 됨) 이제 나중에 요청하기 위해 사용자 대신 전화를 걸 수 있습니다.

    위에 열거 한 특정 문제에 대한 자세한 내용은이 정보를 저장하지 않았습니다. 새로운 oAuth 토큰과 비밀을 계속 만들었습니다.

  • 이전 데이터 프레임 및 변수에 대한 R 일반 참조
  • 다음 java - Class1에는 ArrayList 가 있지만 Class2에는 단일 Class1 인스턴스가 있습니까?