0

私はビーコンを扱っており、登録されているすべてのビーコンをrequestpython で作成して同じ Web ページに表示したいと考えています。

OAuth2 のスコープを設定した後、どのように送信するrequestか、またはdiscovery.build()すべてのリクエストのリストを取得するか、混乱しています。

私はこれでスコープを設定しています:

@portal.route('/oauth2callback')
def oauth2callback():
    flow = client.flow_from_clientsecrets(
        'client_secrets.json',
        scope='https://www.googleapis.com/auth/userlocation.beacon.registry',
        redirect_uri=flask.url_for('portal.oauth2callback', _external=True),
    )
    if 'code' not in flask.request.args:
        auth_uri = flow.step1_get_authorize_url()
        return flask.redirect(auth_uri)
    else:
        auth_code = flask.request.args.get('code')
        credentials = flow.step2_exchange(auth_code)
        flask.session['credentials'] = credentials.to_json()
        return flask.redirect(flask.url_for('portal.index'))



@portal.route('/')
def index():
    if 'credentials' not in flask.session:
        return flask.redirect(flask.url_for('portal.oauth2callback'))
    credentials = client.OAuth2Credentials.from_json(
        flask.session['credentials']
    )
    if credentials.access_token_expired:
        return flask.redirect(flask.url_for('portal.oauth2callback'))
    else:
        http_auth = credentials.authorize(httplib2.Http())
        drive_service = discovery.build('# What should I write')
        # Or, requests.get(What should I write)

リクエストを作成して、登録されているすべてのビーコンのリストを取得する方法を教えてください。

4

2 に答える 2

0

次のようなリクエストを送信することで完了します。

sess = requests.Session()
req = sess.get('https://proximitybeacon.googleapis.com/v1beta1/beacons', headers={'Authorization': 'Bearer '+credentials.access_token})
于 2015-12-09T12:09:07.177 に答える
0

うーん。私は Python の経験はあまりありませんが、こちらのGitHubなどの Python 用の Google サインイン クライアントがあることは確かです。

これにより、ログイン フローをアプリに統合できます。

次に、Proximity Beacon Admin API を呼び出すときに、HTTP ヘッダーを設定するだけで認証できます。

Authorization: Bearer <<OAUTH_BEARER_TOKEN_HERE>>

呼び出しは適切に認証されるはずです。次に、http.get() や http.post() などと同等の Python を実行し、その HTTP ヘッダーを追加すると、応答を確認できるはずです。

于 2015-12-09T10:59:12.290 に答える