3

Pythonoath2ライブラリのドキュメントには、 Twitter に対して認証する方法の非常に簡単な例が示されています。

import oauth2 as oauth

# Create your consumer with the proper key/secret.
consumer = oauth.Consumer(key="your-twitter-consumer-key", 
    secret="your-twitter-consumer-secret")

# Request token URL for Twitter.
request_token_url = "http://twitter.com/oauth/request_token"

# Create our client.
client = oauth.Client(consumer)

# The OAuth Client request works just like httplib2 for the most part.
resp, content = client.request(request_token_url, "GET")
print resp
print content

ただし、追加のパラメーターを指定するにはどうすればよいですか? たとえば、Facebook では、電子メール アドレスなどのデータを要求するために「スコープ」パラメーターが必要です。さらに、Facebook や Google OAuth2 など、Twitter 以外のプロバイダを使用する例はありますか?

4

2 に答える 2

1

oath2libのコードを見ると、client.request()追加のパラメーターの場所があります。

def request(self, uri, method="GET", body='', headers=None, 
        redirections=httplib2.DEFAULT_MAX_REDIRECTS, connection_type=None):

        ...

        if is_form_encoded and body:
            parameters = parse_qs(body)
        else:
            parameters = None

body引数はパラメータに解析されるようです。次の fb oauth リクエストのサンプルを fb dev サイトからコピーします。?引数としてスコープパラメータを含む の後に部分を追加するとbodyうまくいくはずです。

https://www.facebook.com/dialog/oauth?
    client_id=YOUR_APP_ID
   &redirect_uri=YOUR_REDIRECT_URI
   &scope=COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES
   &state=SOME_ARBITRARY_BUT_UNIQUE_STRING
于 2012-07-19T03:04:31.960 に答える