この記事では、WeChatパブリックプラットフォームでアクセストークンを取得する概念と方法を紹介します。
1. アクセストークン
access_token は公式アカウントのグローバルユニークチケットであり、公式アカウントは各インターフェースを呼び出す際に access_token を使用する必要があります。通常の状況では、access_token は 7200 秒間有効です。取得を繰り返すと、最後の access_token が無効になります。
パブリック アカウントは、AppID と AppSecret を使用してこのインターフェイスを呼び出し、access_token を取得できます。 AppIDとAppSecretは開発モードで取得できます(開発者であり、アカウントが異常でないことが必要です)。 すべての WeChat インターフェイスを呼び出すときは、https プロトコルを使用する必要があることに注意してください。
インターフェース呼び出しリクエストの説明
http请求方式: GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
パラメータの説明
パラメータ |
は必須ですか? |
説明 |
grant_type |
はい | access_tokenを取得し、client_credentialを入力します |
appid | サードパーティのユーザーにとっては、サードパーティのユーザーにとって一意の資格キーであり、どちらも通常の状況に基づいています。 , WeChat は、次の JSON データ パッケージを公開アカウントに返します: {"access_token":"ACCESS_TOKEN","expires_in":7200} |
|
Parameters
Description |
|
access_token |
取得したバウチャー
expires_in
バウチャーの有効期限、単位:秒
WeChat はエラーがある場合に返します。 エラー コードとその他の情報。JSON データ パケットの例は次のとおりです (この例は無効な AppID エラーです): {"errcode":40013,"errmsg":"invalid appid"} | | 2. AppId と AppSecret
で使用しますWeChat の背景で高度な機能を見つけます - 開発モード |
|
開発者になる その後、appid と appecert が表示されます |
|
URL とトークンがない場合は、最初にFangbei Studio の次のテストに合格します
URL: http://discuz.comli.com /test.php
トークン: weixin
3. アクセス トークン
を取得するプログラムは次のように実装されています
$appid = "";
$appsecret = "";
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
$jsoninfo = json_decode($output, true);
$access_token = $jsoninfo["access_token"];
ブラウザのアドレスバーにアドレスを直接結合します。実行後、次のデータが得られます
パラメータの説明
access_token
バウチャー
expires_in
バウチャーの有効期限は、単位: 秒です |
または公式インターフェイスデバッグツールを使用します。アドレスは次のとおりです:
Webデバッグツールを使用してカスタムメニューインターフェイスをデバッグします
クリックして問題を確認し、
この方法で、アクセス トークンも取得できます
添付ファイル: グローバル リターン コードの説明
パブリック アカウントがインターフェイスを呼び出すたびに、正しいまたは間違ったリターン コードを取得する可能性があります。開発者は、リターン コード情報に基づいてインターフェイスをデバッグできます。エラーのトラブルシューティングを行うため。
グローバルリターンコードの説明は次のとおりです:
リターンコード |
説明 |
-1 |
システムビジー |
0 |
リクエストは成功しました |
40001 |
access_token取得時のAppSecreエラー、または access_token が無効です |
40002 | 資格情報の種類が不正です |
40003 |
OpenIDが不正です |
40004 |
メディアファイルの種類が不正です |
40005 |
違法なファイルタイプ |
40006 |
有効なファイルサイズがありません |
40007 |
メディアファイルIDが不正です |
40008 |
メッセージタイプが不正です |
40009 |
画像ファイルサイズが不正です |
40010 | 合法な音声ファイルサイズなし |
40011 |
違法ビデオファイルサイズ |
40012 |
サムネールのファイルサイズが不正です |
40013 |
APPIDが不正です |
40014 |
不正なaccess_token |
40015 |
不正なメニュータイプ |
40016 |
の数不正なボタン |
40017 |
不正なボタンの数 |
40018 |
いいえ 正当なボタン名の長さ |
40019 |
不正なボタンのKEYの長さ |
40020 |
ボタンの URL の長さが不正です |
40021 |
メニューのバージョン番号が不正です |
40022 | サブメニューレベルが不正です |
40023 |
サブメニューボタンの数が不正です |
4002 4 |
不正なサブメニューボタンの種類 |
40025 |
不正なサブメニューボタン名の長さ |
40026 |
不正なサブメニューボタンのKEYの長さ |
40027 |
不正なサブメニューボタンのURLの長さ |
40028 |
不正なカスタムメニューユーザー |
40029 |
不正な oauth_code です |
40030 |
不正なrefresh_token |
40031 |
不正なopenidリスト |
40032 | 不正なopenidリストの長さ |
40033 | 不正なリクエスト文字です。uxxxx 形式の文字を含めることはできません |
40035 | パラメータが不正です |
40038 |
リクエスト形式が不正です |
40039 |
URLの長さが不正です |
40050 |
グループIDが不正です |
40051 |
不正なグループ名 |
41001 |
access_token パラメータが欠落しています |
41002 | appid パラメータが欠落しています |
41003 |
refresh_token パラメータが欠落しています |
41004 |
secret パラメータが欠落しています |
41005 |
マルチメディア ファイル データが見つかりません |
41006 |
media_idパラメータが欠落しています |
41 007 |
サブメニューデータが欠落しています |
41008 |
OAuthコードが欠落しています |
41009 |
openidが欠落しています |
42001 |
access_token タイムアウト |
42002 |
refresh_tokenタイムアウト |
42003 |
oauth_codeタイムアウト |
43001 |
GETリクエストが必要 |
43002 | 必須POSTリクエスト |
43003 | HTTPSリクエストが必要 |
43004 | 受信者の注意が必要です |
43005 | 友人関係が必要です |
44001 | マルチメディアファイルが空です |
44002 | POSTデータパケットが空です |
44003 | グラフィックメッセージの内容は、空です |
44004 | テキストメッセージの内容が空です |
45001 | マルチメディアファイルのサイズが制限を超えています |
45002 | メッセージの内容が制限を超えています |
45003 | タイトルフィールドが制限を超えています |
45004 | 説明フィールドが制限を超えています |
45005 | リンクフィールドが制限を超えています |
45006 | 画像リンクフィールドが制限を超えています |
45007 | 音声の再生時間が制限を超えています |
45008 | グラフィックメッセージが制限を超えています |
45009 | インターフェース呼び出しが制限を超えています作成者: |
45010 | メニューの数が制限を超えています |
450 15 | 返信時間制限を超えています |
45016 | システムのグループ化、変更は許可されていません |
45017 | グループ名が長すぎます |
45018 | グループの数が上限を超えています |
46001 | メディアデータが存在しません |
46002 | 存在しないメニューバージョン |
46003 | 存在しないメニューデータ |
460 04 | 存在しないユーザー |
47001 | JSON/XML コンテンツの解析エラー |
48001 | API 関数が許可されていません |
50001 | ユーザーは API を許可されていません |
附:接口频率限制说明
公众号调用接口并不是无限制的。为了防止公众号的程序错误而引发微信服务器负载异常,默认情况下,每个公众号调用接口都不能超过一定限制,当超过一定限制时,调用对应接口会收到如下错误返回码:
{"errcode":45009,"errmsg":"api freq out of limit"}
各接口调用频率限制如下:
接口 |
每日限额 |
获取access_token |
2000 |
自定义菜单创建 |
1000 |
自定义菜单查询 |
10000 |
自定义菜单删除 |
1000 |
创建分组 |
1000 |
获取分组 |
1000 |
修改分组名 |
1000 |
移动用户分组 |
100000 |
上传多媒体文件 |
5000 |
下载多媒体文件 |
10000 |
发送客服消息 |
500000 |
获取带参数的二维码 |
10000 |
获取关注者列表 |
500 |
获取用户基本信息 |
5000000 |
获取网页授权access_token |
2000000 |
刷新网页授权access_token |
2000000 |
网页授权获取用户信息 |
2000000 |
更多微信公众平台开发-ACCESS TOKEN 相关文章请关注PHP中文网!
|