シンプルなエンタープライズWeChatプッシュメッセージ開発

エンタープライズWeChatログインアドレス:https://work.weixin.qq.com(できれば管理者、または独自のエンタープライズWeChatを登録)
サーバーAPI:https://work.weixin.qq.com/api/doc#90001/90143/90371
3番目のアプリケーションメッセージによって駆動される関連APIを見つけます
このアプリケーションは、プッシュテキスト、画像、ビデオ、ファイル、グラフィック、その他のタイプをサポートしています。
リクエストメソッド:POST(HTTPS)リクエストアドレス:https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN
パラメータの説明:
パラメータは、
   あなたがしなければならないの
   説明
  access_tokenは
   され
   バウチャーインタフェースを呼び出し
  
、各メッセージタイプの特定のPOST形式次の書類を。
アプリケーションが「常にマイクロワークベンチのホームページに入る」に設定されている場合、アプリケーションはWeChatエンドでのみテキストメッセージを受信でき、テキストメッセージの長さは20バイトに制限され、20バイトを超える場合は切り捨てられます。同時に、他のメッセージタイプもテキストメッセージに変換され、ユーザーはエンタープライズWeChatにアクセスして表示するように求められます。

最初にaccess_tokenを取得する必要がありますが、access_tokenとは何ですか?開発前に必読の記事を見ることができます。access_tokenには3つのタイプがあります。
3種類のaccess_tokenを区別する
サードパーティのアプリケーション開発によって提供されるインターフェースには、3種類のaccess_tokenが関係しています。次の表は、これら3種類のトークンの定義と使用シナリオを示しています。開発者は、さまざまなシナリオで対応するトークンを選択する必要があります。
タイプの
   説明
   該当するシナリオ
  サービスプロバイダーのトークン
   は、プロバイダー_アクセストークンの corpid(サービスプロバイダーCorpID)およびprovider_secret(サービスプロバイダーキー)に置き換えられます。これは、
   ログイン認証、QRコードのプロモーションなど、サービスプロバイダーレベルのインターフェイスコールに対するサービスプロバイダーのIDを表し ます。等 このドキュメントでは、サービスプロバイダの証明書から
  サードパーティアプリケーションのトークンを取得する方法を説明し ています
   。suite_access_tokenのsuite_id(サードパーティアプリケーションID)およびsuite_secret(サードパーティアプリケーションキー)と引き換えに、サードパーティアプリケーションのIDを表し、サードパーティアプリケーション
   の事前認証コードを取得するために使用されます。認定企業情報等 このドキュメントでは、サードパーティアプリケーションの認証情報を取得し
  て企業のトークン承認する方法を説明しています
   。サードパーティアプリケーションをインストールした後、サードパーティのサービスプロバイダーは企業のコーピッドおよび永続的な承認コードを使用して、access_tokenを取得し、
   アドレス帳管理、メッセージプッシュなどの企業関連の承認されたインターフェイスを操作します。 。ドキュメントでは、エンタープライズ資格情報の取得
   と3番目の「承認済みエンタープライズトークン 」を参照しています。使用シナリオにメッセージのプッシュがあることがわかります。[エンタープライズ資格情報の取得]をクリックして表示します。
企業の資格情報を取得する
企業の永続認証コードを取得した後、サードパーティのサービスプロバイダーは、このインターフェイスを介して企業のaccess_tokenを取得できます。
取得すると、これらのアプリケーションは、アドレス帳、アプリケーション、メッセージなどの企業インターフェイスを介して操作できます。

ここで取得されるエンタープライズaccess_tokenは、access_tokenを取得するためにエンタープライズが取得するトークンと基本的に同じですが、取得方法は異なります。取得後、トークンを使用して、通常の企業のようにAPIインターフェイスを呼び出します

エンタープライズインターフェースの呼び出しに必要なaccess_token取得メソッドは以下のとおりです。
リクエストメソッド:POST(HTTPS)リクエストアドレス:https://qyapi.weixin.qq.com/cgi-bin/service/get_corp_token?suite_access_token=SUITE_ACCESS_TOKEN
ここで取得したエンタープライズaccess_tokenは、基本的にエンタープライズがaccess_tokenを取得するために取得したトークンと同じであるため、2番目の方法を選択しました。
access_tokenを取得する
リクエストメソッド:GET(HTTPS)リクエストURL:https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRECT注:大文字のIDとSECRETはここでマークされています。これらは置換する必要がある変数です、実際に取得した値に応じて更新。他のインターフェースも同じラベルを使用し、説明はありません。

企業がサードパーティのアプリケーションをインストールする場合、サービスプロバイダーは「企業のaccess_tokenを取得する」を介してこのコールクレデンシャルを取得できます。

パラメータの説明:
このパラメーター    は、  corpid    が    エンタープライズIDであり、   corpsecret    が    アプリケーションの資格情報キー   権限の説明であることを示す
   必要があり
ます






各アプリケーションには独立したシークレットがあるため、各アプリケーションのaccess_tokenは個別に取得する必要があります
結果を返す:
{
  「エラーコード」:0、
  "errmsg": ""、
  "access_token": "accesstoken000001"、
  「expires_in」:7200
}
パラメータ
   説明
  access_tokenは
   512のバイトまで、取得した認証情報を
  expires_in
   有効時間(秒)クレデンシャル
  エラーリターン例:
{
  "エラーコード":40091、
  "errmsg": "秘密が無効です"
}
特記事項:

エンタープライズWeChatのすべてのインターフェースには、戻りパッケージにerrcodeおよびerrmsgがあります。開発者は、errcodeが0かどうかに基づいて、呼び出しが成功したかどうかを判断する必要があります(errcodeの意味については、グローバルエラーコードを参照してください)。
errmsgは参照用であり、将来変更される可能性があるため、正常な呼び出しの基準として使用することはできません。
後で繰り返すことはしません。

エンタープライズIDとアプリケーション認証情報キーは用語の紹介にありますが、管理者権限が必要です
access_tokenを取得した後、メッセージをプッシュできます。公式APIは多くのメッセージタイプを提供します。私はテキストカードメッセージを単純に開発しました。
メッセージを送信するための公式APIは非常に詳細であり、上記が含まれているので、私は自分の考えを記録するだけです。したがって、直下のコード。
{token = HttpUtils.httpGetMethod(url);を試してください。} catch(例外e){e.printStackTrace(); }トークンを返します。}}
 
public class HttpUtils {public static String httpPostMethod(String url、Map <String、Object> params){String returnValue = "接口调用失败"; CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost post = new HttpPost(url); post.setHeader( "コンテンツタイプ"、 "コンテンツタイプ"); post.setEntity(new StringEntity(JSON.toJSONString(params)、 "utf-8")); CloseableHttpResponseレスポンス= null; try {response = httpClient.execute(post); if(response!= null && response.getStatusLine()。getStatusCode()== 200){HttpEntity entity = response.getEntity(); returnValue = EntityUtils.toString(entity); }} catch(Exception e){e.printStackTrace(); } public static String httpGetMethod(String url)が例外をスローします、Exception {CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet get = new HttpGet(url); CloseableHttpResponseレスポンス= null; 応答= httpClient.execute(get); HttpEntityエンティティ= response.getEntity(); 文字列returnValue = EntityUtils.toString(entity); JSONObject jsonObject = JSON.parseObject(returnValue); 文字列トークン= jsonObject.getString( "access_token"); //トークンを保存するためにこのトークンを作成する必要があり、トークンが返されないようにします。}} } public static String httpGetMethod(String url)が例外をスローします、Exception {CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet get = new HttpGet(url); CloseableHttpResponseレスポンス= null; 応答= httpClient.execute(get); HttpEntityエンティティ= response.getEntity(); 文字列returnValue = EntityUtils.toString(entity); JSONObject jsonObject = JSON.parseObject(returnValue); 文字列トークン= jsonObject.getString( "access_token"); //トークンを保存するためにこのトークンを作成する必要があり、トークンが返されないようにします。}}
————————————————
著作権声明:この記事は、CSDNブロガー「Gaga&Baby」のオリジナルの記事であり、CC 4.0 BY-SAの著作権契約に従います。転載用の元のソースリンクを添付してくださいそしてこの声明。
元のリンク:https://blog.csdn.net/aStartStudy/article/details/90215415

おすすめ

転載: www.cnblogs.com/ran-d/p/12698488.html