0

最近、私たちのウェブサイトに「Facebook に登録」ボタンを作成しました。Twitter でも同じことを実現しようとしています。

ただし、Twitter でタスクを実行するための正確な手順を見つけるのに苦労しています。

私が Facebook で行ったことは次のとおりです。

// (1) - Create new Facebook object:
$facebook = new Facebook(array( 
    'appId'  => $this->config->item('facebook_app_id'),  
    'secret' => $this->config->item('facebook_app_secret')
));

// (2) - Get all fields relating to logged-in user:
$facebook_user = $facebook->getUser();

// (3) - Retrieve all fields which we need to register a user on OUR website:
if ($facebook_user){//if logged in to Facebook:
    $facebook_user_profile = $facebook->api('/me');
    $fb_email        = $facebook_user_profile["email"];
    $fb_first_name   = $facebook_user_profile["first_name"];
    $fb_last_name    = $facebook_user_profile["last_name"];
    // ...
}

質問1:

Twitterで同じことを達成するにはどうすればよいですか?

質問2:

アプリ (https://dev.twitter.com/apps/new) を作成し、4 つのコード (コンシューマー キー、コンシューマー シークレット、アクセス トークン、アクセス トークン シークレット) を取得しましたが、これらのコードが何であるかわかりません。しかし、目の前のタスクにこれらの 4 つのコードが必要ですか?

提案やオンラインリソースは素晴らしいでしょう...

4

1 に答える 1

0

tmhOauth クラスをダウンロードhttps://github.com/themattharris/tmhOAuth

$settings['consumer_key']   = 'your_key';
$settings['consumer_secret']= 'your_secret';

parse_str( $_SERVER['QUERY_STRING'], $_REQUEST );

require 'twitter/tmhoauth.php';
require 'twitter/tmhUtilities.php';

$this->_twitter = new Tmhoauth($settings);

if ( isset($_SESSION['access_token']) ) { //if already logged
    $this->_twitter->config['user_token']  = $_SESSION['access_token']['oauth_token'];
    $this->_twitter->config['user_secret'] = $_SESSION['access_token']['oauth_token_secret'];

    $code = $this->_twitter->request('GET', $this->_twitter->url('1/account/verify_credentials'));
    if ($code == 200) {
        // save user data
    }
} elseif (isset($_REQUEST['oauth_verifier'])) { // we're being called back by Twitter
    $code = $this->_twitter->request('POST', $this->_twitter->url('oauth/access_token', ''), array(
        'oauth_verifier' => $_REQUEST['oauth_verifier'],
        'oauth_token' => $_REQUEST['oauth_token']
    ));

    if ($code == 200) {
        $_SESSION['access_token'] = $this->_twitter->extract_params($this->_twitter->response['response']);
        // save user data
    }
} else{ // login url for your "connect with twitter" button
    $here = tmhUtilities::php_self();
    $callback = isset($_REQUEST['oob']) ? 'oob' : $here;
    $params = array( 'oauth_callback' => $callback );

    $code = $this->_twitter->request('POST', $this->_twitter->url('oauth/request_token', ''), $params);

    if ($code == 200) {
        $test_this = $this->_twitter->extract_params($this->_twitter->response['response']);
        $_SESSION['oauth'] = $test_this;
        $method = isset($_REQUEST['authenticate']) ? 'authenticate' : 'authorize';
        $force  = isset($_REQUEST['force']) ? '&force_login=1' : '';
        $authurl = $this->_twitter->url("oauth/{$method}", '') .  "?oauth_token={$test_this['oauth_token']}{$force}";
        $this->_loginUrl = $authurl;
    }
}

twitter api でユーザーのメールアドレスを取得できません。

于 2012-10-09T21:13:20.240 に答える