Как отправить твит из Google Chrome Extension? - PullRequest
1 голос
/ 11 марта 2012

Я следую Google oAuth учебник. И у меня возникли проблемы с авторизацией пользователя.

Я отправляю пользователя в твиттер для авторизации. Так как это расширение chrome и обратного вызова нет. Я не знаю, как отправить твит от имени этого пользователя. Как я делаю вещи:

  1. У меня есть фоновая страница с кодом авторизации пользователя из твиттера. В тот момент, когда пользователь устанавливает расширение, фоновая страница отправляет этого пользователя в твиттер для авторизации. Мой метод авторизации вызывается с их обратным вызовом. Но не знаю, есть ли у меня все, чтобы сделать твит.
  2. Теперь, когда пользователь нажмет на значок расширения, появится popup.html. И на этой странице я хочу, чтобы пользователь отправил твит. Как?

Ниже приведен мой код:

manifest.json

{
"name": "TweetChrome",
"version": "1.0",
"description": "Tweet from Chrome",
"browser_action": {
"default_icon": "images/share.png",
 "popup": "popup.html"
},
"permissions": [
 "tabs",
"http://ajax.googleapis.com",
"*://*.twitter.com/*",
 "clipboardWrite"
],
"options_page": "options.html",
"background_page": "background.html"  
 }

background.html Я получаю HTML-разметку страницы в зависимости от метода обратного вызова. Я не знаю, для чего это?

var oauth = ChromeExOAuth.initBackgroundPage({
                      'request_url': 'https://api.twitter.com/oauth/request_token',
                      'authorize_url': 'https://api.twitter.com/oauth/authorize',
                      'access_url': 'https://api.twitter.com/oauth/access_token',
                      'consumer_key': 'key',
                      'consumer_secret': 'secret',
                      'scope': '',
                      'app_name': 'TweetChrome'
                    });

                oauth.authorize(onAuthorized);  

            function onAuthorized() {
              var url = 'https://api.twitter.com/oauth/authorize';
                           /*as they are optional, i left empty*/
              var request = {
                'force_login': '',
                'screen_name': ''
              };
              oauth.sendSignedRequest(url, callback, request);
            };

            function callback(resp, xhr) { alert('it get called too'); };

popup.html Для твита я использую заимствованный twitter.js . Я не написал это.

           Twitter.verify_credentials({install: true});           
       Twitter.update("test");

Мой подход oauth прав, когда он есть на фоновой странице? Как только я получаю разрешение на звонок, насколько далеко я могу сделать твит для пользователя?

Любая помощь будет оценена. Я надеюсь решить эту проблему, чтобы закончить мое продление.

1 Ответ

2 голосов
/ 15 марта 2012

Вам не нужно запрашивать https://api.twitter.com/oauth/authorize в onAuthorized - как только вы перейдете к этой функции, у вас уже есть ключ, и пользователь прошел аутентификацию.

Попробуйте запросить http://api.twitter.com/1/account/verify_credentials.json в onAuthorized. Вы должны увидеть ответ JSON с информацией о пользователе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...