Вопросы по использованию Twitter-Oauth API в php - PullRequest
6 голосов
/ 21 января 2011

Недавно я прочитал хороший учебник Как аутентифицировать пользователей с помощью Twitter OAuth даже он написан до изменения формата твиттер-идентификатора, но он также работает с новым форматом твиттер-идентификатора.вопросы, пожалуйста, объясните, если кто-нибудь сделал это успешно ..

  • Почему мы всегда вызываем два метода getRequestToken и getAccessToken?Это чтобы получить access token и access token secret?но оба они уже приведены на странице ниже ...

    http://dev.twitter.com/apps/{your_app_id}/my_token.

    что именно нужно токен запроса и секрет токена запроса ??хотя я замечаю, что каждый токен приходит по-разному каждый раз, когда мы обрабатываем.

  • , если мы обновляем наш статус снизу методом

    $connection->post( 'statuses/update', array('status' => 'some message got from text area value' );

Тогда как мы можем убедиться, что статус был успешно обновлен ??Это означает, что если я хочу отобразить предупреждающее сообщение post has been sent successfully, как мне реализовать это на нашей странице PHP ??

  • , какой URL обратного вызова важен, то есть где фактически пользователь перемещается после публикацииили делать вещи в твиттере?

    1. это URL Registered OAuth Callback URL, который написан во время разработки приложения на

      http://dev.twitter.com/apps/{id_no}
      или

    2. это URL, который определен в нашем php-коде (config.php) как

      define('OAUTH_CALLBACK', 'http://www.xyz.com');

    одинбольше Q'n

  • Как обработать запрет доступа к приложениям?
    Примечание: Пожалуйста, обратитесь к моему Вопросу относительно этого

обновление для @ Thai

Я сделал ниже по вашему предложению

<code>$user_info = $connection->get('account/verify_credentials');
$status_info =$connection->get('statuses/show/', array('id' =>32320907720523776) );

echo "<pre>";
print_r($status_info);

echo "
Содержание:
";
print_r($user_info);
</code>

возвращается ниже

stdClass Object
(
    [request] => /1/statuses/show.json?id=3.2320907720524E%2B16&oauth_consumer_key=jashak..&oauth_nonce=bec...&oauth_signature=%2FMj%2B0Z7oyYNKdMn%2B%2FOJ6Ba8ccfo%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1296541384&oauth_token=223961574-cW4...&oauth_version=1.0a
    [error] => No status found with that ID.
)

примечание: я скрываю oauth_consumer key, oauth_nonce и oauth_token в целях безопасности;)

Content:
stdClass Object
(
    [follow_request_sent] => 
    [profile_link_color] => 038543
    [profile_image_url] => http://a3.twimg.com/profile_images/1215444646/minialist-photography-9_normal.jpg
    [contributors_enabled] => 
    [favourites_count] => 31
    [profile_sidebar_border_color] => EEEEEE
    [id_str] => 223961574 // this is also id_str
    [status] => stdClass Object
        (
            [retweeted] => 
            [id_str] => 32320907720523776 // this id_str i used
            [in_reply_to_status_id_str] => 
            [geo] => 
            [contributors] => 
            [source] => Black Noise
            [in_reply_to_user_id_str] => 
            [retweet_count] => 0
            [truncated] => 
            [coordinates] => 
            [created_at] => Tue Feb 01 06:14:39 +0000 2011
            [favorited] => 
            [text] => Twitter test: verify that status has been updated
            [place] => 
            [in_reply_to_screen_name] => 
            [in_reply_to_status_id] => 
            [id] => 3.2320907720524E+16
            [in_reply_to_user_id] => 
        )
   [screen_name] => ltweetl
   [profile_use_background_image] => 1
   ....
   ...

я получил ошибку No status found with that ID и который id_str urупоминая ??

Ответы [ 3 ]

4 голосов
/ 31 января 2011

Этот ответ не предназначен специально для API Авраама Twitter-OAuth, но в целом относится к API OAuth Twitter.

  1. Эта страница дает вам только ваш маркер доступаи получить доступ к секретному токену ваших собственных приложений.Это нормально, если вам не нужно, чтобы ваше приложение аутентифицировалось как другие пользователи, поэтому вам не нужно запрашивать токены запросов и не нужно обменивать токен запроса на токен доступа, вы просто используете свой токен доступа

    Однако, если вы хотите аутентифицироваться как другие пользователи, вам придется пройти все необходимые шаги, которые кратко описаны здесь:

    • Вы запрашиваете запрос токен.Он используется только для входа в систему и не может использоваться для доступа к данным пользователя.Вы получите токен запроса и секретный ключ запроса.При запросе токена запроса вы можете указать URL-адрес обратного вызова , на который Twitter будет отправлять ваших пользователей при успешной аутентификации.
    • Необходимо сохранять маркер запроса и его секрет до тех пор, пока аутентификация не будет выполнена.готово.
    • После этого вы перенаправляете пользователя на http://api.twitter.com/oauth/authorize?oauth_token=, за которым следует токен OAuth.
    • После того, как пользователь вошел в Twitter и разрешил ваше приложение, Twitter отправляет пользователя обратно на обратный вызовURL.
    • Вы обмениваете токен запроса на токен доступа, а затем можете сбросить токен запроса, потому что он вам больше не нужен.

    Вы можете оставить токен доступадо тех пор, пока вам это нужно.Если вы не сохраните токен доступа, вам нужно будет запросить токен запроса и снова обменять его на токен доступа, и вашим пользователям придется снова войти в систему.

    В общем, если вы что-то создаетечто пользователю необходимо войти в систему с помощью Twitter, вам нужно выполнить все шаги, описанные выше, чтобы войти в систему. Если вы используете только API Twitter для себя, вам не нужен этап аутентификации. Используйте свой токен доступа.

  2. Вы можете проверить идентификатор твита , проверив ключ id_str в возвращенном ответе.

    Если статус не опубликован, Twitter вернет объект ошибки.

  3. Вы можете указать обратный вызов по умолчанию OAuth на странице настроек приложения., который будет использоваться, если вы явно не указали обратный вызов.

    Это необходимо, потому что, если вы как-то забудете или не указали URL-адрес обратного вызова, Twitter все равно будет знать, куда перенаправить ваших пользователей.

    Однако Twitter рекомендует явно указать URL-адрес обратного вызова .Использование URL-адреса обратного вызова имеет множество преимуществ, например возможность указать любые URL-адреса в качестве обратного вызова.Я пользовался этим преимуществом, потому что мой клиент Twitter работает в двух разных доменах, и я мог перенаправить пользователей обратно в нужное место.

0 голосов
/ 31 января 2011

Что вы получаете, когда делаете:

$temp = $connection->post( 'statuses/update', array('status' => 'some message got from textarea value' );
print_r($temp);

Я бы предположил, что в формате $ temp будет храниться ответ (в формате json / xml).(Чтобы проверить ответы Twitter, вы можете проверить http://dev.twitter.com/console)

URL обратного вызова, который определен в config.php, определит, куда он будет перенаправлен. Это потому, что этот параметр обратного вызова был недавно добавлен в API Twitter.чтобы вы могли определить только URL-адрес обратного вызова в разделе управления приложениями на twitter.com, этот URL-адрес является URL-адресом по умолчанию, если другой URL-адрес не определен.

0 голосов
/ 21 января 2011

Поскольку мы получаем AccessToken и Access Token Secret только после того, как проверим пользователя с помощью верификатора.

Верификатор наиболее важен в процессе OAuth. Поэтому нам нужно отправить один запрос для генерации AccessToken и Access Token Secret.

После получения AccessToken и Access Token Secret мы можем использовать их в течение времени, указанного пользователем, при этом разрешив вашему приложению Twitter разрешить доступ к его Info.it, это может быть 1 день, 1 месяц, как мудро в LInkedin OAuth, после этого времени AccessToken и Срок действия секрета доступа истекает .........

...