2016-06-28 6 views

答えて

8

スタックオーバフローとGoogleでこれに関する情報が不足しているように見えるので、私自身の質問にここで答えることを選んでください。私は他の人たちもそれが役に立つと願っています。 How to add the WeChat API to a Swift project?

1)どのようにセットアップのiOS SDKのSuragchの優秀な答えに従ってください。 func onReq(req: BaseReq!)func onResp(resp: BaseResp!)メソッドが実装されていると説明されているように、AppDelegateが設定されていることを確認してください。

2.)ログインと承認を得るには、SDKの中国語版をダウンロードして使用する必要があります。不思議なことに、ログインに必要な機能の一部が英語版から削除されています。中国語SDK:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419319164&lang=zh_CN

3.)まず、WeChatで使用するアプリを承認したいと考えています。これには、同様に行うことができます。

let req = SendAuthReq() 
req.scope = "snsapi_userinfo" //Important that this is the same 
req.state = "co.company.yourapp_wx_login" //This can be any random value 
WXApi.sendReq(req) 

これはfunc onResp(resp: BaseResp!)にコードを返す必要があり、私はそうのようなメソッドを実装 - 通知をトリガー:

func onResp(resp: BaseResp!) { 
     if let authResp = resp as? SendAuthResp { 
      if authResp.code != nil { 
       let dict = ["response": authResp.code] 
       NSNotificationCenter.defaultCenter().postNotificationName("WeChatAuthCodeResp", object: nil, userInfo: dict)    
      } else {      
       let dict = ["response": "Fail"] 
       NSNotificationCenter.defaultCenter().postNotificationName("WeChatAuthCodeResp", object: nil, userInfo: dict)      
      }     
     } else {     
      let dict = ["response": "Fail"] 
      NSNotificationCenter.defaultCenter().postNotificationName("WeChatAuthCodeResp", object: nil, userInfo: dict) 
     } 
    } 

4)コードで、私たちは今、試してみてすることができますopenIDとaccessTokenを取得します。これを行うには、appIDappSecretを使用してリンクを作成し、HTTP GETリクエストを行う必要があります。 appIDappSecretは、あなたがWeChatでアプリを登録すると得られる詳細です。私たちは、HTTP GETリクエストを実行し、JSONでopenIDaccessTokenを得ることができ、このリンクに

private let appID = "somecode2132113" 
private let appSecret = "someappsecret213123" 

private let accessTokenPrefix = "https://api.weixin.qq.com/sns/oauth2/access_token?" 

private func buildAccessTokenLink(withCode code: String) -> String { 
     return accessTokenPrefix + "appid=" + appID + "&secret=" + appSecret + "&code=" + code + "&grant_type=authorization_code" 
    } 

:そうのような例。 (郵便配達でそれを試してください)。私はこれのためのコードを投稿しませんが、私はAlamofireを使用しています。

5.最後に、もう一度、WeChatユーザーのニックネームとプロフィール写真を取得してみましょう。以前の手順で取得したopenIDaccessTokenを使用して新しいリンクを作成する前と非常に似ています。同様に:

private let userInfoPrefix = "https://api.weixin.qq.com/sns/userinfo?" 

private func buildUserInfoLink(withOpenID openID: String, accessToken: String) -> String { 
     return userInfoPrefix + "access_token=" + accessToken + "&openid=" + openID 
    } 

HTTP GETリクエストを実行すると、JSONはニックネームとプロフィール写真のリンクを返します。

プラス:ここに詳細なガイド:http://www.kekearif.com/how-to-implement-ios-wechat-login/

+1

私はあなたの手順に従って試してみましたが、私が認可のため微信アプリに移動していたとき、私はメッセージを取得しておく:**おっと!何かが間違っていました:(** レスポンスオブジェクトにエラーコード-2以外の何も表示されません。ヒント? –

+0

@KushalAshokはwechatポータルページをチェックしましたか? – Kex

+1

私はチャットアカウントをチェックして、300円のCNYの支払いをする必要があることを知り、ログインAPIが私のために有効になっていることを伝えます。 app。 –

関連する問題