04/28/2025 20:45:30

WeChat 채널 설명

1. Android 프로젝트 설정

1 Android 프로젝트 설정

1.1 권한 설정

AndroidManifest.xml 루트 노드에 권한 신규 추가

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- 【선택】for mta statistics -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

1.2 Activity 입구 설정

AndroidManifest.xml 에 다음과 같은 설정 추가

Android Studio 환경에서 {applicationId} 를 패키지 네임으로 수동 변경할 필요가 없습니다

Unity, UE4, Cocos2D 등의 환경에서는 수동으로 {applicationId} 를 패키지 네임으로 변경하여야 합니다

<activity
    android:name="com.tencent.gcloud.msdk.WeChatAgentActivity"
    android:exported="true"
    android:launchMode="singleTask"
    android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"/>

<activity-alias
    android:name="${applicationId}.wxapi.WXEntryActivity"
    android:enabled="true"
    android:exported="true"
    android:launchMode="singleTask"
    android:excludeFromRecents="true"
    android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
    android:targetActivity="com.tencent.gcloud.msdk.WeChatAgentActivity"/>

<activity
    android:name="com.tencent.gcloud.msdk.qrcode.WXQrCodeActivity"
    android:excludeFromRecents="true"
    android:exported="true"
    android:label="WXQrCodeActivity"
    android:launchMode="singleTask"
    android:taskAffinity="com.tencent.gcloud.msdk.qrcode.diff"
    android:configChanges="orientation|screenSize|keyboardHidden"
    android:theme="@android:style/Theme.Light.NoTitleBar"
    android:screenOrientation="portrait">
</activity>

1.3 App Id 설정

프로젝트 assets/MSDKConfig.ini 파일에 아래 설정 추가

WECHAT_APP_ID = {YOUR_WECHAT_APP_ID}

[info] {YOUR_WECHAT_APP_ID} 를 요청한 Wechat APPID 로 변경

2、iOS 프로젝트 설정

2 iOS 프로젝트 설정

2.1 MSDKConfig 구성 파일

프로젝트에서 MSDKAppSetting.bundle/MSDKConfig.ini 파일을 찾아, 아래 설정 추가

WECHAT_APP_ID = {YOUR_WECHAT_APP_ID}

[info] {YOUR_WECHAT_APP_ID} 를 요청한 Wechat APPID 로 변경

2.2 Xcode 프로젝트 구성 파일 info.plist

아래 노드 찾기 또는 만들기:

 <key>CFBundleURLTypes</key>
     <array>
     <dict>
         <key>CFBundleURLSchemes</key>
         <array>
             <string>{your wechat app id}</string>
         </array>
     </dict>
 </array>
 <key>LSApplicationQueriesSchemes</key>
 <array>
     <string>wechat</string>
     <string>weixin</string>
     <string>weixinULAPI</string>
 </array>
 <key>NSAppTransportSecurity</key>
     <dict>
     <key>NSAllowsArbitraryLoads</key>
     <true/>
 </dict>

[info] {your wechat app id} 를 요청한 Wechat APPID 로 변경

2.3 Unity XUPoter 의 xx.projmods 파일 설정

Unity 에서 XCode 프로젝트를 도출할 때, 도출한 XCode 프로젝트에 2.2의 설정이 가능하도록 projmods 파일을 설정하여야 합니다

{
    "group": "MSDKWeChat",
    "libs": [],
    "frameworks": [],
    "files": [],
    "folders": [],
    "excludes": [],
    "headerpaths":[],
    "build_settings": {},
    "system_capabilities": {},
    "Info.plist":{
        "LSApplicationQueriesSchemes":
        [
            "weixin",
            "wechat",
                        "weixinULAPI"
        ],
        "CFBundleURLTypes" :
        [
            {
                "CFBundleTypeRole":"Editor",
                "CFBundleURLSchemes":["{WX_APPID}"]
            }
        ]
    }, 
}

[info] {WX_APPID} 를 요청한 Wechat APPID 로 변경

자세한 사항은 Universal Link 설명 을 참조하십시오

3、기능 설명

3 기능 설명

Wechat 친구 와 공유 기능 과 관련하여 Feiying 시스템 에서 요청 가능한 권한은 다음과 같습니다:

  • 공유의 작은 꼬리
  • 백 엔드 공유하기
  • 관계망
  • 길드 그룹
  • 미니 프로그램

3.1 로그인 기능

위챗 권한 로그인을 사용하는 경우, 로그인 모듈 파일을 참조하십시오

MSDKLogin.Login 을 호출할 때의 접속 권한. Wechat iOS/Android 의 권한 목록은 아래와 같습니다(공식 홈페이지에는 명확한 권한 설명 없음):

권한 설명
snsapi_userinfo 사용자 리소스 획득(MSDK 기본 권한)
snsapi_friend 친구 리스트 획득
snsapi_message 메시지 발송

Wechat QR코드로 로그인
Wechat 은 QR코드 로그인을 지원하며, MSDKLogin.Login 를 호출할 때, extraJson 에 QRCode 설정을 추가하면 바로 QR코드 인터페이스를 열 수 있습니다. extraJson 는 json 포맷인 점에 유의하십시오.

예시 코드

C#
C++
MSDKLogin.Login (channel, "", "", "{\"QRCode\":true}");
GCloud::MSDK::MSDKLogin::Login(channel, "", "", "{\"QRCode\":true}");

3.2 친구 기능

Wechat 친구에게 메시지 보내기, 모멘트로 사진/영상 공유와 관련하여 친구 모듈 을 참고하십시오

[info] 비디오를 모멘트에 공유하기 위해서는 Wechat 버전이 6.5.8 이상이어야 합니다; Wechat 버전 6.7.2 부터는 공유 취소/실패 콜백을 보내지 않습니다. 공유에 성공/실패/취소와 모두 상관없이 성공 으로 리턴하며, 게임에서의 과도한 공유 유도를 방지하기 위한 구체적인 방식은 Wechat 측의 전략에 달려 있습니다;

1)발송 기능 지원 유형

No. 기능 필수 입력 필드
0 텍스트 발송-팝업 type(유형)、desc(설명)
1 링크 발송-팝업 type(유형)、link(링크)
2 이미지 발송-팝업 type(유형)、imagePath(이미지 주소)
3 뮤직 발송-팝업 type(유형)、link(링크)
4 애플리케이션 요청-팝업 type(유형)
5 미니프로그램 발송-팝업 type(유형)、link(링크)、extraJson(확장 필드에서 key 는 weapp_id 정보를 갖고 있어야 함)
6 미니프로그램 오픈-팝업 type(유형)、link(링크)、extraJson(확장 필드에서 key 는 weapp_id 정보를 갖고 있어야 함)
7 비즈니스 기능 오픈-팝업 type(유형)、extraJson(확장 필드에서 key 는 business_type 정보를 갖고 있어야 함)

2)공유 기능 지원 유형

No. 기능 필수 입력 필드
0 텡스트 공유-팝업 type(유형)、desc(설명)
1 링크 공유-팝업 type(유형)、link(링크)
2 이미지 공유-팝업 type(유형)、imagePath(이미지 주소)
3 뮤직 공유-팝업 type(유형)、link(링크)、imagePath(이미지 주소)
4 비디오 공유-팝업 type(유형)、mediaPath(미디어 주소)
5 이미지를 위챗 게임 모멘트에 공유 type(유형)、imagePath(이미지 주소)

[info] 기타 발송/공유 타입은 모두 지원하지 않음;

기타 자주 사용하지 않는 필드는, 필드 extraJson 에 넣었습니다

MSDKFriendReqInfo reqInfo = new MSDKFriendReqInfo();
reqInfo.extraJson = "{\"gameextra\":\"shareWXGameLinePic\", \"media_tag_name\":\"MSG_INVITE\",\"message_action\":\"WECHAT_SNS_JUMP_URL\",\"message_ext\":\"12345\", \"weapp_id\":\"wx4a0a73ec028e47d7\"}";

이 중 gameextra 필드는 Wechat 게임 모멘트의 연결을 열 때 URL 에 추가하는 필드입니다. 예를 들어 앞서 서술된 extraJson 에&gameextra=shareWXGameLinePic 가 url 에 추가됩니다

3.3 그룹 기능

Wechat 그룹 기능에는 아래와 같은 사항들이 포함되어 있습니다:그룹 만들기, 기존 그룹에 가입하기, 그룹 상태 획득, 그룹 관계 획득, 그룹 탈퇴, 그룹 메시지 발송

자세한 사항은 그룹 모듈 참조

[info] 위챗의 그룹 정보는 자체 작성이 가능하며, unionID 는 추후 모듈의 기능에 대한 유일한 ID 임을 꼭 기억하십시오.
주의사항:Wechat은 24시간내에 한 개의 위챗 그룹만 만들 수 있습니다

3.4 Wechat 으로 게임 열기

Wechat 에서 게임 실행은 현재 다음과 같은 두 가지 방법으로 열기가 가능합니다

  • 사용자가 요청 메시지 클릭으로 열기

  • 게임센터에서 열기

이 두 가지 방법으로 게임 페이지 실행을 하면, MSDK 는 이에 응답하여 Wechat 의 파라미터를 extraJson 의 params 필드로 전송하여, 게임은 이곳에서 필드를 획득할 수 있습니다.

데이터 전달 포맷은 다음과 같습니다:

{
  "extraJson": {
    "params": {
      "_wxappextendobject_extInfo": "MSDK",
      "_wxapi_basereq_transaction": "da5119749b8f66db36cb9ca6002e7ef0",
      "_wxobject_sdkVer": 620954368,
      "_wxobject_description": "",
      "_mmessage_appPackage": "com.tencent.mm",
      "THIRD_REQ_RESULT": 0,
      "openid": "oHlap1URnIobL4489JUYTXH9_PJ4",
      "_wxobject_message_ext": "WX_GameCenter",
      "_wxapi_command_type": 4,
      "_wxobject_title": "sendMessage10003",
      "_wxapi_basereq_openid": "oHlap1URnIobL4489JUYTXH9_PJ4",
      "_mmessage_checksum": "B@282cb08",
      "wx_token_key": "com.tencent.mm.openapi.token",
      "_mmessage_sdkVersion": 620954368,
      "_wxapi_showmessage_req_country": "CN",
      "_wxobject_identifier_": "com.tencent.mm.sdk.openapi.WXAppExtendObject",
      "platform": "WeChat",
      "_wxapi_showmessage_req_lang": "zh_CN",
      "platformId": "wechat"
    },
    "game_data": "MSDK"
  },
  "methodNameID": 119,
  "retCode": 0,
  "retMsg": "Success",
  "ret": -1,
  "msg": ""
}

설명:extraJson 에서 params 의 대응하는 필드, 이름과 내용은 Wechat 에서 전달합니다. extraJson 에 있는 game_data 필드는 게임에서 친구 요청을 보낼 때 내용을 채운 것을 그대로 가져오는 것이며, 게임센터에서 게임을 여는 경우, 해당 글자를 해석합니다

game_data 필드 투명적 전송

var reqInfo = new MSDKFriendReqInfo ();
reqInfo.Link = "http://www.qq.com";
reqInfo.ExtraJson = "{\"game_data\":\"iOS Game Data 테스트 게임 데이터\"}";

게임은 초대 메시지 인터페이스를 통해 Wechat-app 을 열어 Wechat 친구에게 메시지 보낸 뒤, 사용자의 Wechat 친구가 메시지를 클릭 시 게임으로 돌아가는 상황

메시지 발송 시, MSDKFriendReqInfo 에 있는 ExtraJson 에 추가된game_data 의 필드는 메시지를 클릭하여 게임을 열 때, 게임 측에 리턴되는 데이터로 MSDKBaseRet 의 ExtraJson 에 있는 game_data 에 저장됩니다.

{
  "methodNameID": 0,
  "channelID": 1,
  "channel": "WeChat",
  "pluginData": "",
  "channelOpenID": "oHlap1Q1mqIQLpAqsuwty635gH0U",
  "seqID": "11-2B4C94EE-0CC8-4433-A313-1678F57272FA-1585295116-47",
  "extraJson": {
    "params": {
      "language": "zh_CN",
      "openId": "oHlap1Q1mqIQLpAqsuwty635gH0U",
      "mediaTagName": "",
      "country": "CN",
      "messageExt": "iOS Game Data 테스트 게임 데이터"
    },
    "game_data": "iOS Game Data 테스트 게임 데이터"
  }
}
4、FAQ

4 FAQ

4.1 위챗은 열리나, 권한 리턴과 관련하여 콜백이 없는 경우

  • MSDK.Init 가 초기화되었는지 확인
  • 콜백 설정이 되어 있는지 확인
  • Android 는 AndroidManifest.xml 설정 수정여부 확인, android:name="${applicationId}.wxapi.WXEntryActivity" 의{applicationId} 를 본인 패키지 네임으로 변경한 것은 아닌지 확인
  • iOS 는 info.plist 에 설정이 추가되었는지 확인

4.2 비디오 공유가 안 되는 경우

  • 비디오 포맷 제한됨



Copyright © 2025 MSDK.
All rights reserved.

results matching ""

    No results matching ""