OpenResty 위챗 공중번호 얻기 access_token

1633 단어
공중 번호의 각종 기능을 실현하려면 우선access_token, 이access_token은 처음에 서버를 작성한 token이 아니라 appid와 secret가 위챗 서버에 신청해야 합니다.
그 다음은 OpenResty 자체가 http 요청을 하는 것은 비교적 번거로운 일이다. 다행히 봄이 형이 루아_를 썼다resty_http, Openresty에서 http 요청을 시작하는 것이 더 쉽습니다.나는 그중의 하나를 사용한다.https://github.com/pintsized/lua-resty-http
다운로드한 후 scp로 서버에 저장합니다. (서버에서 wget을 직접 사용해도 안 되는 것은 아닙니다.) 제가 저장한 경로는:/usr/local/openresty/lualib/resty, 이어서nginx입니다.conf에 lua 파일 추가 경로:lua_package_path "/usr/local/openresty/lualib/resty/lua-resty-http/lib/?.lua;;";
추가 위치 추가:
    location/ask_accesstoken {            content_by_lua_file/path/to/ask_accesstoken.lua;    }
다음은 마른 물건입니다.
local http = require "resty.http"
local httpc = http:new()
local res, err = httpc:request_uri("https://api.weixin.qq.com/cgi-bin/token", {
        method = "GET",
        query = {
                grant_type = "client_credential",
                appid = "APPID", -- appid
                secret = "SECRET", --  secret
        },
        ssl_verify = false, --  https 
        headers = {["Content-Type"] = "application/x-www-form-urlencoded" },
      })
if not res then
        ngx.say("failed to request: ", err)
        return
end
ngx.status = res.status
ngx.say(res.body)

편집이 끝난 후, 시험 후에 또 하나의 문제가 발생할 수 있습니다:failed to request:api.weixin.qq.com could not be resolved (110: Operation timed out).
이것은 DNS 해석이 필요하기 때문입니다. 이때 nginx에 있습니다.conf의 서버에 한마디 추가:resolver 114.114.114;(이것은 공공 DNS 해석 서버 주소입니다. 저는 구글의 8.8.8로 때때로 접근할 수 없습니다. 어떤 벽 덕분입니다=).
이렇게 하면 access_토켄이야, 잘 됐어.

좋은 웹페이지 즐겨찾기