# 1.1 账号部分

## 1.1.1 游客登录

**说明**

* 登陆方式选择界面，点击GameStart按钮调用此API

**接口**

```
public void guestLogin(final CydoniaJPSDKCallbackListener sdkCallback)
```

**参数说明**

* 无参数

**示例**

```java
mCydoniaSDK.guestLogin(new CydoniaJPSDKCallbackListener() {
                    @Override
                    public void onResult(String params) {
                        System.out.println("Demo guestLogin onResult:"+params);
                        try {
                            JSONObject resultObject = new JSONObject(params);
                            if (resultObject.getInt("status") == 200) {
                                JSONObject dataObject = resultObject.getJSONObject("data");
                                Log.d(SDKDEMOTAG, "status:" + resultObject.get("status") + ", userId:" + dataObject.get("userId")
                                        + ", message:" + resultObject.get("msg"));
                                System.out.println("Demo guestLogin result:" + "status:" + resultObject.get("status")
                                        + ", userId:" + dataObject.get("userId") + ", message:" + resultObject.get("msg"));

                            }else {
                                Log.d(SDKDEMOTAG, "status:" + resultObject.get("status") + ", message:" + resultObject.get("msg"));
                                System.out.println("Demo guestLogin result:" + "status:" + resultObject.get("status")
                                        + ", message:" + resultObject.get("msg"));
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }


                    }
                });
```

## 1.1.2 获取SDK玩家ID <a href="#id-1-1-2-getplayerid" id="id-1-1-2-getplayerid"></a>

**说明**

* 获取SDK发行的userID，每个玩家的userID是唯一的
* 此userID在其他登陆方式的返回中也会返回

**接口**

```
public String getUserId()
```

**参数说明**

* 无参数

**示例**

```
String userId = mCydoniaSDK.getUserId();
```

## 1.1.3 获取继承ID <a href="#id-1-1-3-getmigrateid" id="id-1-1-3-getmigrateid"></a>

**说明**

* 获取继承ID，显示在继承密码设定界面

**接口**

```
public void getMigrateId(final CydoniaJPSDKCallbackListener sdkCallback)
```

**参数说明**

* 无参数

**示例**

```java
mCydoniaSDK.getMigrateId(new CydoniaJPSDKCallbackListener() {

                    @Override
                    public void onResult(String params) {
                        // Log.d(SDKDEMOTAG, response);
                        System.out.println("Demo getMigrateId response:"+params);
                        try {
                            JSONObject resultObject = new JSONObject(params);
                            if (resultObject.getInt("status") == 200) {
                                JSONObject dataObject = resultObject.getJSONObject("data");
                                Log.d(SDKDEMOTAG, "status:" + resultObject.get("status") + ", migrateId:"
                                        + dataObject.get("migrateId") + ", message:" + resultObject.get("msg"));

                                System.out.println("Demo getMigrateId result ok:" + "status:" + resultObject.get("status")
                                        + ", migrateId:" + dataObject.get("migrateId") + ", message:" + resultObject.get("msg"));

                            } else {
                                Log.d(SDKDEMOTAG, "status:" + resultObject.get("status") + ", message:" + resultObject.get("msg"));
                                System.out.println("Demo getMigrateId result error:" + "status:" + resultObject.get("status")
                                        + ", message:" + resultObject.get("msg"));
                            }


                        }catch (JSONException e) {
                            e.printStackTrace();
                        }


                    }
                });
```

## 1.1.4 玩家登出 <a href="#id-1-1-4-logout" id="id-1-1-4-logout"></a>

**说明**

* 如果有玩家登出按钮需调用此API

**接口**

```
public void userLogout()
```

**参数说明**

* 无参数

**示例**

```
mCydoniaSDK.userLogout();
```

## 1.1.5 是否设定过继承密码 <a href="#id-1-1-5-issetpass" id="id-1-1-5-issetpass"></a>

**说明**

* 检测该账号是否设定过继承密码

**接口**

```
public Boolean isPasswordSet()
```

**参数说明**

* 无参数

**示例**

```java
if (mCydoniaSDK.isPasswordSet()) {
    Log.d(SDKDEMOTAG, "you have set password");
    System.out.println("Demo isPasswordSet: yes");
  } else {
    Log.d(SDKDEMOTAG, "password is not set yet");
    System.out.println("Demo isPasswordSet: no");
  }
```

## 1.1.6 设定继承密码 <a href="#id-1-1-6-setpass" id="id-1-1-6-setpass"></a>

**说明**

* 给账号设定继承密码

**接口**

```
public void setMigratePass(String pass1, String pass2, final CydoniaJPSDKCallbackListener sdkCallback)
```

**参数说明**

* pass1: 玩家第一次输入的密码
* pass2: 玩家第二次输入的密码

**示例**

```java
mCydoniaSDK.setMigratePass(pass1, pass2, new CydoniaJPSDKCallbackListener() {

                    @Override
                    public void onResult(String params) {
                        try {
                            JSONObject resultObject = new JSONObject(params);
                            Log.d(SDKDEMOTAG, "status:" + resultObject.get("status") + ", message:" + resultObject.get("msg"));
                            System.out.println("Demo setMigratePass result:" + "status:" + resultObject.get("status")
                                    + ", message:" + resultObject.get("msg"));

                        }catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                });
```

## 1.1.7 玩家继承 <a href="#id-1-1-7-integration" id="id-1-1-7-integration"></a>

**说明**

玩家在另一台设备通过继承ID和继承密码来继承登录游戏的时候调用此API

**接口**

```
public void migratedevice(String migrateId, String password, final CydoniaJPSDKCallbackListener sdkCallback)
```

**参数说明**

* migrateId: 玩家输入的继承ID
* password: 玩家输入的继承密码

**示例**

```java
mCydoniaSDK.migratedevice(mId, mPass, new CydoniaJPSDKCallbackListener() {

                    @Override
                    public void onResult(String params) {
                        // Log.d(SDKDEMOTAG, response);
                        try {
                            JSONObject resultObject = new JSONObject(params);
                            if (resultObject.getInt("status") == 200) {
                                JSONObject dataObject = resultObject.getJSONObject("data");

                                Log.d(SDKDEMOTAG, "status:" + resultObject.get("status") + ", userId:" + dataObject.get("userId")
                                        + ", migrateId:" + dataObject.get("migrateId") + ", message:" + resultObject.get("msg"));
                                System.out.println("Demo migratedevice result:" + "status:" + resultObject.get("status")
                                        + ", userId:" + dataObject.get("userId") + ", migrateId:" + dataObject.get("migrateId")
                                        + ", message:" + resultObject.get("msg"));
                            } else {
                                Log.d(SDKDEMOTAG, "status:" + resultObject.get("status") + ", message:" + resultObject.get("msg"));
                                System.out.println("Demo migratedevice result:" + "status:" + resultObject.get("status")
                                        + ", message:" + resultObject.get("msg"));
                            }
                        }catch (JSONException e) {
                            e.printStackTrace();
                        }

                    }
                });
```

## 1.1.8 SNS账号部分 <a href="#id-1-1-8-sns" id="id-1-1-8-sns"></a>

几种SNS登录方式类同，仅拿一种进行说明。

SNS分享只有Twitter和Facebook两种SNS有。

### Twitter部分 <a href="#twitter" id="twitter"></a>

#### 1.1.8.1 Twitter账号是否绑定

**说明**

判断Twitter账号是够绑定

**接口**

```
public Boolean isTwitterBind()
```

**参数说明**

无

**示例**

```java
//Twitter是否绑定
if(mCydoniaSDK.isTwitterBind()){
    System.out.println("Demo isTwitterBind: yes");
}else{
    System.out.println("Demo isTwitterBind: no");
}
```

#### **1.1.8.2 绑定Twitter账号**

**说明**

对于还没有绑定Twitter账号的玩家，可以通过此API实现绑定

**接口**

```
public void bindTwitter(final CydoniaJPSDKCallbackListener sdkCallback)
```

**参数说明**

无

**示例**

```java
//绑定Twitter
                mCydoniaSDK.bindTwitter(new CydoniaJPSDKCallbackListener() {

                    @Override
                    public void onResult(String params) {
                        try {
                            JSONObject resultObject = new JSONObject(params);
                            if (resultObject.getInt("status") == 200) {
                                System.out.println("Demo bindTwitter success");
                            } else {
                                Log.d(SDKDEMOTAG, "status:" + resultObject.get("status") + ", message:" + resultObject.get("msg"));
                                System.out.println("Demo bindTwitter failed result:" + "status:" + resultObject.get("status")
                                        + ", message:" + resultObject.get("msg"));
                            }
                        }catch (JSONException e) {
                            e.printStackTrace();
                        }

                    }
                } );
```

#### **1.1.8.3 Twitter账号解绑**

**说明**

对于已经绑定过Twitter账号的玩家，可以通过此API实现解绑

**接口**

```
public void unbindTwitter(final CydoniaJPSDKCallbackListener sdkCallback)
```

**参数说明**

无

**示例**

```java
//unBindTwitter
                mCydoniaSDK.unbindTwitter(new CydoniaJPSDKCallbackListener() {

                    @Override
                    public void onResult(String params) {

                        try {
                            JSONObject resultObject = new JSONObject(params);

                            if (resultObject.getInt("status") == 200) {
                                System.out.println("Demo unbindTwitter success");
                            } else {
                                Log.d(SDKDEMOTAG, "status:" + resultObject.get("status") + ", message:" + resultObject.get("msg"));
                                System.out.println("Demo unbindTwitter failed result:" + "status:" + resultObject.get("status")
                                        + ", message:" + resultObject.get("msg"));
                            }
                        }catch (JSONException e) {
                            e.printStackTrace();
                        }



                    }
                } );
```

#### **1.1.8.4 Twitter账号登录**

**说明**

使用Twitter账号登录游戏，返回数据的数据结构与游客登录方式

**接口**

```
-(void) twitterMigrate:(SDKResponseBlock) sdkResponse;
```

**参数说明**

无

**示例**

```java
//Twitter登录
                //如果登录成功，返回的数据与普通玩家登陆相同
                mCydoniaSDK.twitterMigrate(new CydoniaJPSDKCallbackListener() {

                    @Override
                    public void onResult(String params) {

                        try {
                            JSONObject resultObject = new JSONObject(params);
                            if (resultObject.getInt("status") == 200) {
                                JSONObject dataObject = resultObject.getJSONObject("data");
                                System.out.println("Demo twitterMigrate result:" + "status:" + resultObject.get("status")
                                        + ", userId:" + dataObject.get("userId") + ", message:" + resultObject.get("msg"));

                            } else {
                                Log.d(SDKDEMOTAG, "status:" + resultObject.get("status") + ", message:" + resultObject.get("msg"));
                                System.out.println("Demo twitterMigrate failed result:" + "status:" + resultObject.get("status")
                                        + ", message:" + resultObject.get("msg"));
                            }
                        }catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                } );
```

#### 1.1.8.5 Twitter账号分享

**说明**

Twitter和Facebook提供了分享功能

**接口**

```
public void twitterShareMsgTagsAndImage( String textMsg, String hashTags, Uri imageUri )
```

**参数说明**

* textMsg：Twitter需要分享的文本
* hashTags: 需要使用的hashTag
* imgUri：图片文件的路径

**示例**

```java
//uri为必须,格式参照https://github.com/twitter/twitter-kit-android/wiki/Compose-Tweets
//The image Uri should be a Uri using the content:// scheme
//image Uri使用 content:// sheme
File imgFile = new File("/storage/emulated/0/Download/a.jpg");
Uri imageUri = getImageContentUri(MainActivity.this, imgFile);
mCydoniaSDK.twitterShareMsgTagsAndImage("Hello World Message", "#sdk", imageUri);
```

### ~~Facebook部分~~ <a href="#facebook" id="facebook"></a>

```
public Boolean isFacebookBind()
public void bindFacebook(final CydoniaJPSDKCallbackListener sdkCallback)
public void unbindFacebook(final CydoniaJPSDKCallbackListener sdkCallback)
public void facebookMigrate(final CydoniaJPSDKCallbackListener sdkCallback)
public void facebookShareMsgTagsAndImage( String hashTags, Uri imageUri ,final CydoniaJPSDKCallbackListener sdkCallback)
```

~~\*Facebook分享不允许给默认信息~~

### Google部分 <a href="#google" id="google"></a>

```
public void googleMigrate(final CydoniaJPSDKCallbackListener sdkCallback)
```
