亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python實現網站微信登錄的示例代碼

 更新時間:2019年09月18日 09:23:27   作者:cacique  
這篇文章主要介紹了python實現網站微信登錄的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

最近微信登錄開放公測,為了方便微信用戶使用,我們的產品也決定加上微信登錄功能,然后就有了這篇筆記。

根據需求選擇相應的登錄方式

python實現網站微信登錄的示例代碼

微信現在提供兩種登錄接入方式

  • 移動應用微信登錄
  • 網站應用微信登錄

這里我們使用的是網站應用微信登錄

按照 官方流程

1 注冊并通過開放平臺開發(fā)者資質認證

注冊微信開放平臺帳號后,在帳號中心中填寫開發(fā)者資質認證申請,并等待認證通過。

2 創(chuàng)建網站應用

通過填寫網站應用名稱、簡介和圖標,以及各平臺下載地址等資料,創(chuàng)建網站應用

3 接入微信登錄

在資源中心查閱網站應用開發(fā)文檔,開發(fā)接入微信登陸功能,讓用戶可使用微信登錄你的網站應用

如果已經完成上面的操作,請繼續(xù)往下看

微信網站應用微信登錄是基于OAuth2.0協議標準構建的微信OAuth2.0授權登錄系統。

微信OAuth2.0授權登錄目前支持authorization_code模式,適用于擁有server端的應用授權。該模式整體流程為:

  1.  第三方發(fā)起微信授權登錄請求,微信用戶允許授權第三方應用后,微信會拉起應用或重定向到第三方網站,并且?guī)鲜跈嗯R時票據code參數;
  2.  通過code參數加上AppID和AppSecret等,通過API換取access_token;
  3.  通過access_token進行接口調用,獲取用戶基本數據資源或幫助用戶實現基本操作。

具體流程請參考官方文檔,我們這里只說一下python的實現方法。官方文檔地址 點這里

參考python-instagram 我寫了一個python-weixin https://github.com/zongxiao/python-weixin)一個微信python SDK

不過現在還只有微信接入、獲取用戶信息、 刷新refresh_token 等簡單功能

首先 需要把代碼clone到本地

然后執(zhí)行

python setup.py install

使用方式非常簡單

from weixin.client import WeixinAPI

APP_ID = 'your app id'
APP_SECRET = 'your app secret'
REDIRECT_URI = 'http://your_domain.com/redirect_uri' # 這里一定要注意 地址一定要加上http/https

scope = ("snsapi_login", )
api = WeixinAPI(appid=APP_ID,
      app_secret=APP_SECRET,
      redirect_uri=REDIRECT_URI)

authorize_url = api.get_authorize_url(scope=scope)

現在將

authorize_url 地址在瀏覽器打開, 將跳轉到微信登錄頁面,使用手機掃碼登錄后將跳轉到
http://your_domain.com/redirect_uri?code=CODE&state=STATE 頁面

現在我們就可以使用code 來獲取登錄的 access_token

access_token = api.exchange_code_for_access_token(code=code)

access_token 信息為

{ 
"access_token":"ACCESS_TOKEN", 
"expires_in":7200, 
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID", 
"scope":"SCOPE" 
}

參數 說明
access_token 接口調用憑證(有效期目前為2個小時)
expires_in access_token接口調用憑證超時時間,單位(秒)
refresh_token 用戶刷新access_token(有效期目前為30天)
openid 授權用戶唯一標識
scope 用戶授權的作用域,使用逗號(,)分隔

獲取access_token后,就可以進行接口調用,有以下前提:

  1.  access_token有效且未超時;
  2.  微信用戶已授權給第三方應用帳號相應接口作用域(scope)。

對于接口作用域(scope),能調用的接口有以下:

授權作用域(scope) 接口 接口說明
snsapi_base /sns/oauth2/access_token 通過code換取access_token、refresh_token和已授權scope
/sns/oauth2/refresh_token 刷新或續(xù)期access_token使用
/sns/auth 檢查access_token有效性
snsapi_userinfo /sns/userinfo 獲取用戶個人信息

api = WeixinAPI(appid=APP_ID,
    app_secret=APP_SECRET,
    redirect_uri=REDIRECT_URI)

# 刷新或續(xù)期access_token使用
refresh_token = api.exchange_refresh_token_for_access_token(refresh_token=auth_info['refresh_token'])

api = WeixinAPI(access_token=auth_info['access_token'])

# 獲取用戶個人信息
user = api.user(openid=auth_info['openid'])

# 檢查access_token有效性
v = api.validate_token(openid=auth_info['openid'])

現在就微信登錄就完成了

下面是用 flask 實現的完整的例子

from flask import Flask
from flask import Markup
from flask import redirect
from flask import request
from flask import jsonify

from weixin.client import WeixinAPI
from weixin.oauth2 import OAuth2AuthExchangeError

app = Flask(__name__)

APP_ID = 'appid'
APP_SECRET = 'app secret'
REDIRECT_URI = 'http://localhost.com/authorization'


@app.route("/authorization")
def authorization():
 code = request.args.get('code')
 api = WeixinAPI(appid=APP_ID,
     app_secret=APP_SECRET,
     redirect_uri=REDIRECT_URI)
 auth_info = api.exchange_code_for_access_token(code=code)
 api = WeixinAPI(access_token=auth_info['access_token'])
 resp = api.user(openid=auth_info['openid'])
 return jsonify(resp)


@app.route("/login")
def login():
 api = WeixinAPI(appid=APP_ID,
     app_secret=APP_SECRET,
     redirect_uri=REDIRECT_URI)
 redirect_uri = api.get_authorize_login_url(scope=("snsapi_login",))
 return redirect(redirect_uri)


@app.route("/")
def hello():
 return Markup('<a href="%s" rel="external nofollow" >weixin login!</a>') % '/login'

if __name__ == "__main__":
 app.run(debug=True)

參考鏈接:

微信網站應用接入文檔 

網站應用創(chuàng)建地址

python-weixin github 地址  https://github.com/zongxiao/python-weixin

 以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • TensorBoard 計算圖的查看方式

    TensorBoard 計算圖的查看方式

    今天小編就為大家分享一篇TensorBoard 計算圖的查看方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python+Pygame實現簡單的單詞小游戲

    Python+Pygame實現簡單的單詞小游戲

    語言是一種藝術,但是作為語言的基礎——詞匯,卻不像藝術那樣賞心悅目。不斷的記憶與復習,讓詞匯成為很多孩子在學習英語時,最難完全攻克的關卡。本文就來用Python制作一個簡單的英語單詞游戲吧
    2023-03-03
  • keras多顯卡訓練方式

    keras多顯卡訓練方式

    這篇文章主要介紹了keras多顯卡訓練方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python實現斷點調試的方法

    python實現斷點調試的方法

    本文主要介紹了python實現斷點調試的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • python中的 Matplotlib 繪制多子圖時的重疊問題及解決方案

    python中的 Matplotlib 繪制多子圖時的重疊問題及解決方案

    當使用 Matplotlib 繪制多個子圖(subplots)時,如果標簽或標題文字交叉或重疊,遇到這樣的問題如何處理呢,下面小編給大家介紹了python中的 Matplotlib 繪制多子圖時的重疊問題及解決方案,需要的朋友可以參考下
    2024-06-06
  • 利用Python制作一個愚人節(jié)整蠱消息框

    利用Python制作一個愚人節(jié)整蠱消息框

    又到了一年一度的愚人節(jié)了,本文小編為大家準備了用Python語言制作的愚人節(jié)整蠱消息框,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2023-04-04
  • ubuntu安裝jupyter并設置遠程訪問的實現

    ubuntu安裝jupyter并設置遠程訪問的實現

    Jupyter?Notebook是Ipython的升級版,而Ipython可以說是一個加強版的交互式Shell,本文主要介紹了ubuntu安裝jupyter并設置遠程訪問的實現,感興趣的可以了解一下
    2022-03-03
  • python實現數學模型(插值、擬合和微分方程)

    python實現數學模型(插值、擬合和微分方程)

    這篇文章主要介紹了python實現數學模型(插值、擬合和微分方程),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • 詳解PyCharm安裝MicroPython插件的教程

    詳解PyCharm安裝MicroPython插件的教程

    PyCharm可以說是當今最流行的一款Python IDE了,大部分購買TPYBoard的小伙伴都會使用PyCharm編寫MicroPython的程序。這篇文章給大家介紹了PyCharm安裝MicroPython插件的教程,需要的朋友參考下吧
    2019-06-06
  • Linux下安裝python3.6和第三方庫的教程詳解

    Linux下安裝python3.6和第三方庫的教程詳解

    這篇文章主要介紹了Linux下安裝python3.6和第三方庫的教程詳解,需要的朋友可以參考下
    2018-11-11

最新評論