Permintaan
| Informasi dasar | |
|---|---|
| URL HTTP | https://api.dingtalk.io/v1.0/sns/getuserinfo_bycode |
| Metode HTTP | POST |
| Tipe aplikasi yang didukung | appType-Aplikasi internalappType-Aplikasi perusahaan pihak ketiga |
| Izin | permission-open_app_api_base-Izin dasar untuk mendapatkan kredensial akses pengguna bagi API terbuka DingTalk |
Parameter query
| Nama | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| accessKey | String | Ya | AppId dari aplikasi. |
| timestamp | String | Ya | Stempel waktu saat ini, dalam milidetik. |
| signature | String | Ya | Nilai tanda tangan yang dihitung menggunakan algoritme HmacSHA256, dengan timestamp+“\n”+AppSecret sebagai string tanda tangan dan AppSecret sebagai kunci penandatanganan. |
Isi permintaan
| Nama | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| tmp_auth_code | String | Ya | authorization_code login senyap yang diberikan pengguna kepada aplikasi terbuka DingTalk. Dapatkan dengan memanggil JSAPI dd.getAuthCode. Lihat authorization_code login senyap untuk detailnya. |
Contoh permintaan
curl -X POST "https://api.dingtalk.io/v1.0/sns/getuserinfo_bycode" \
-H 'Content-Type:application/x-www-form-urlencoded;charset=utf-8' \
-d 'tmp_auth_code=abcdef'
DefaultDingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/v1.0/sns/getuserinfo_bycode");
// Jika kelas ini tidak ada di SDK Anda, unduh SDK terbaru
OapiSnsGetuserinfoBycodeRequest req = new OapiSnsGetuserinfoBycodeRequest();
req.setTmpAuthCode("4a2c5695b78738d495f47b5fee9160cd");
OapiSnsGetuserinfoBycodeResponse response = client.execute(req,"yourAppId","yourAppSecret");
import dingtalk.api
req = dingtalk.api.OapiSnsGetuserinfoBycodeRequest("https://api.dingtalk.io/v1.0/sns/getuserinfo_bycode")
req.tmp_auth_code = "abcdef"
try:
resp = req.getResponse("yourAppId", "yourAppSecret")
print(resp)
except Exception as e:
print(e)
include "TopSdk.php";
date_default_timezone_set('Asia/Shanghai');
$c = new DingTalkClient(DingTalkConstant::$CALL_TYPE_OAPI, DingTalkConstant::$METHOD_POST , DingTalkConstant::$FORMAT_JSON);
$req = new OapiSnsGetuserinfoBycodeRequest;
$req->setTmpAuthCode("abcdef");
$resp = $c->execute($req,"yourAppId","yourAppSecret", "https://api.dingtalk.io/v1.0/sns/getuserinfo_bycode");
IDingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/v1.0/sns/getuserinfo_bycode");
OapiSnsGetuserinfoBycodeRequest req = new OapiSnsGetuserinfoBycodeRequest();
req.TmpAuthCode = "abcdef";
OapiSnsGetuserinfoBycodeResponse rsp = client.Execute(req, "yourAppId", "yourAppSecret");
Console.WriteLine(rsp.Body);
Respons
Contoh isi respons
{
"errcode": 0,
"errmsg": "ok",
"user_info": {
"nick": "Budi",
"unionid": "Wzh9KbyaCZxxx",
"openid": "EtiiaAu3Yf9Ruxxx",
"main_org_auth_high_level": true
}
}
Kode error
Jika terjadi error saat memanggil API ini, lihat dokumen kode error global untuk menemukan solusi berdasarkan pesan error.| Kode error | Deskripsi |
|---|---|
| 853002 | Parameter timestamp tidak valid. Nilainya berbeda dari waktu saat ini pada server DingTalk lebih dari 1 menit. |
| 853001 | Format parameter timestamp salah. Nilainya harus berupa waktu saat ini dalam milidetik. |
| 853003 | Parameter accessKey tidak valid. Nilainya harus berupa appId yang ada di DingTalk Open Platform. |
| 853004 | Parameter signature salah dan tidak cocok dengan tanda tangan yang dihitung oleh server DingTalk. Perhatikan bahwa parameter ini harus di-urlEncode saat dikirim. |