Permintaan
Informasi dasar
| Bidang | Nilai |
|---|---|
| URL HTTP | https://api.dingtalk.io/v1.0/storage/spaces/{spaceId}/dentries/{dentryId}/openInfos/query |
| Metode HTTP | POST |
| Tipe aplikasi yang didukung | appType-Internal app appType-Third-party enterprise app |
| Izin yang diperlukan | permission-Storage.File.Read-Organization storage file read permission |
Header permintaan
| Nama | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| x-acs-dingtalk-access-token | String | Ya | Kredensial akses untuk memanggil API ini. Dapatkan dengan cara berikut: - Untuk aplikasi internal, panggil API Mendapatkan access token aplikasi internal. - Untuk aplikasi perusahaan pihak ketiga, panggil API Mendapatkan access token organisasi yang diberi otorisasi ke aplikasi pihak ketiga. |
Parameter path
| Nama | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| spaceId | String | Ya | ID ruang. Panggil API Menambahkan ruang untuk mendapatkan nilai parameter id. |
| dentryId | String | Ya | ID file. Panggil API Mendapatkan daftar file atau folder atau Mendapatkan spaceId dan dentryId berdasarkan dentryUuid untuk mendapatkan nilai parameter id. |
Parameter query
| Nama | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| unionId | String | Ya | unionId dari operator. Panggil API Mengkueri detail pengguna untuk mendapatkan nilai parameter unionid. |
Isi permintaan
| Nama | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| option | Object | Tidak | Parameter opsional. |
| version | Long | Tidak | Nomor versi dari file yang ditentukan. Panggil API Mendapatkan daftar file atau folder untuk mendapatkan nilai parameter id. |
| type | String | Tidak | Mode buka file: - PREVIEW: Pratinjau. Nilai default. - EDIT: Edit. |
| waterMark | Boolean | Tidak | Apakah tanda air diperlukan: - true: Diperlukan. - false: Tidak diperlukan. Nilai default. Saat ini, hanya file berformat WPS (Word, Excel, PPT, PDF) yang mendukung tanda air. |
| checkLogin | Boolean | Tidak | Apakah akan memeriksa status masuk DingTalk. Parameter ini hanya berlaku ketika nilai type adalah PREVIEW. - true: Periksa. Status masuk DingTalk diverifikasi saat memasuki halaman. Jika pengguna belum masuk, halaman akan mengalihkan ke halaman masuk, lalu melanjutkan ke halaman saat ini setelah berhasil masuk. - false (default): Jangan periksa. Status masuk DingTalk tidak diverifikasi saat memasuki halaman, tetapi batasan berikut berlaku: - Mendukung format dokumen dasar (Word, Excel, PPT, PDF), beberapa format gambar (jpg, jpeg, jpe, png, gif, bmp, pcx, jiff, tiff, tif, ico, fax, wbmp, webp), dan semua jenis file audio serta video. Aksi Teruskan, Edit online, Unduh, dan aksi lainnya di sudut kanan atas jendela pratinjau tidak didukung. - Setelah didapatkan, tautan hanya dapat diakses satu kali (per sesi browser). - Setelah didapatkan, tautan otomatis kedaluwarsa setelah 5 menit tidak aktif. |
Contoh permintaan
HTTPPOST /v1.0/storage/spaces/854xxxxx/dentries/989xxxxx/openInfos/query?unionId=chyxxxxx HTTP/1.1
Host:api.dingtalk.io
x-acs-dingtalk-access-token:xxxxx
Content-Type:application/json
{
"option" : {
"version" : 1,
"type" : "PREVIEW",
"waterMark" : true,
"checkLogin" : true
}
}
package com.aliyun.sample;
import com.aliyun.tea.*;
public class Sample {
/**
* <b>description</b> :
* <p>Initialize the account Client with a Token</p>
* @return Client
*
* @throws Exception
*/
public static com.aliyun.dingtalkstorage_1_0.Client createClient() throws Exception {
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
config.protocol = "https";
config.regionId = "central";
return new com.aliyun.dingtalkstorage_1_0.Client(config);
}
public static void main(String[] args_) throws Exception {
com.aliyun.dingtalkstorage_1_0.Client client = Sample.createClient();
com.aliyun.dingtalkstorage_1_0.models.GetDentryOpenInfoHeaders getDentryOpenInfoHeaders = new com.aliyun.dingtalkstorage_1_0.models.GetDentryOpenInfoHeaders();
getDentryOpenInfoHeaders.xAcsDingtalkAccessToken = "<your access token>";
com.aliyun.dingtalkstorage_1_0.models.GetDentryOpenInfoRequest.GetDentryOpenInfoRequestOption option = new com.aliyun.dingtalkstorage_1_0.models.GetDentryOpenInfoRequest.GetDentryOpenInfoRequestOption()
.setVersion(1L)
.setType("PREVIEW")
.setWaterMark(true)
.setCheckLogin(true);
com.aliyun.dingtalkstorage_1_0.models.GetDentryOpenInfoRequest getDentryOpenInfoRequest = new com.aliyun.dingtalkstorage_1_0.models.GetDentryOpenInfoRequest()
.setUnionId("chyxxxxx")
.setOption(option);
try {
client.getDentryOpenInfoWithOptions("854xxxxx", "989xxxxx", getDentryOpenInfoRequest, getDentryOpenInfoHeaders, new com.aliyun.teautil.models.RuntimeOptions());
} catch (TeaException err) {
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err berisi atribut code dan message yang membantu menemukan masalah selama pengembangan
}
} catch (Exception _err) {
TeaException err = new TeaException(_err.getMessage(), _err);
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err berisi atribut code dan message yang membantu menemukan masalah selama pengembangan
}
}
}
}
# -*- coding: utf-8 -*-
# This file is auto-generated, don't edit it. Thanks.
import os
import sys
import json
from typing import List
from alibabacloud_dingtalk.storage_1_0.client import Client as dingtalkstorage_1_0Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_dingtalk.storage_1_0 import models as dingtalkstorage__1__0_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient
class Sample:
def __init__(self):
pass
@staticmethod
def create_client() -> dingtalkstorage_1_0Client:
"""
Initialize the account Client with a Token
@return: Client
@throws Exception
"""
config = open_api_models.Config()
config.protocol = 'https'
config.region_id = 'central'
return dingtalkstorage_1_0Client(config)
@staticmethod
def main(
args: List[str],
) -> None:
client = Sample.create_client()
get_dentry_open_info_headers = dingtalkstorage__1__0_models.GetDentryOpenInfoHeaders()
get_dentry_open_info_headers.x_acs_dingtalk_access_token = '<your access token>'
option = dingtalkstorage__1__0_models.GetDentryOpenInfoRequestOption(
version=1,
type='PREVIEW',
water_mark=True,
check_login=True
)
get_dentry_open_info_request = dingtalkstorage__1__0_models.GetDentryOpenInfoRequest(
union_id='chyxxxxx',
option=option
)
try:
client.get_dentry_open_info_with_options('854xxxxx', '989xxxxx', get_dentry_open_info_request, get_dentry_open_info_headers, util_models.RuntimeOptions())
except Exception as err:
if not UtilClient.empty(err.code) and not UtilClient.empty(err.message):
# err berisi atribut code dan message yang membantu menemukan masalah selama pengembangan
pass
@staticmethod
async def main_async(
args: List[str],
) -> None:
client = Sample.create_client()
get_dentry_open_info_headers = dingtalkstorage__1__0_models.GetDentryOpenInfoHeaders()
get_dentry_open_info_headers.x_acs_dingtalk_access_token = '<your access token>'
option = dingtalkstorage__1__0_models.GetDentryOpenInfoRequestOption(
version=1,
type='PREVIEW',
water_mark=True,
check_login=True
)
get_dentry_open_info_request = dingtalkstorage__1__0_models.GetDentryOpenInfoRequest(
union_id='chyxxxxx',
option=option
)
try:
await client.get_dentry_open_info_with_options_async('854xxxxx', '989xxxxx', get_dentry_open_info_request, get_dentry_open_info_headers, util_models.RuntimeOptions())
except Exception as err:
if not UtilClient.empty(err.code) and not UtilClient.empty(err.message):
# err berisi atribut code dan message yang membantu menemukan masalah selama pengembangan
pass
if __name__ == '__main__':
Sample.main(sys.argv[1:])
<?php
// This file is auto-generated, don't edit it. Thanks.
namespace AlibabaCloud\SDK\Sample;
use AlibabaCloud\SDK\Dingtalk\Vstorage_1_0\Dingtalk;
use \Exception;
use AlibabaCloud\Tea\Exception\TeaError;
use AlibabaCloud\Tea\Utils\Utils;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Dingtalk\Vstorage_1_0\Models\GetDentryOpenInfoHeaders;
use AlibabaCloud\SDK\Dingtalk\Vstorage_1_0\Models\GetDentryOpenInfoRequest\option;
use AlibabaCloud\SDK\Dingtalk\Vstorage_1_0\Models\GetDentryOpenInfoRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
class Sample {
/**
* Initialize the account Client with a Token
* @return Dingtalk Client
*/
public static function createClient(){
$config = new Config([]);
$config->protocol = "https";
$config->regionId = "central";
return new Dingtalk($config);
}
/**
* @param string[] $args
* @return void
*/
public static function main($args){
$client = self::createClient();
$getDentryOpenInfoHeaders = new GetDentryOpenInfoHeaders([]);
$getDentryOpenInfoHeaders->xAcsDingtalkAccessToken = "<your access token>";
$option = new option([
"version" => 1,
"type" => "PREVIEW",
"waterMark" => true,
"checkLogin" => true
]);
$getDentryOpenInfoRequest = new GetDentryOpenInfoRequest([
"unionId" => "chyxxxxx",
"option" => $option
]);
try {
$client->getDentryOpenInfoWithOptions("854xxxxx", "989xxxxx", $getDentryOpenInfoRequest, $getDentryOpenInfoHeaders, new RuntimeOptions([]));
}
catch (Exception $err) {
if (!($err instanceof TeaError)) {
$err = new TeaError([], $err->getMessage(), $err->getCode(), $err);
}
if (!Utils::empty_($err->code) && !Utils::empty_($err->message)) {
// err berisi atribut code dan message yang membantu menemukan masalah selama pengembangan
}
}
}
}
$path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
if (file_exists($path)) {
require_once $path;
}
Sample::main(array_slice($argv, 1));
package main
import (
"encoding/json"
"strings"
"fmt"
"os"
util "github.com/alibabacloud-go/tea-utils/v2/service"
dingtalkstorage_1_0 "github.com/alibabacloud-go/dingtalk/storage_1_0"
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
"github.com/alibabacloud-go/tea/tea"
)
// Description:
//
// Initialize the account Client with a Token
//
// @return Client
//
// @throws Exception
func CreateClient () (_result *dingtalkstorage_1_0.Client, _err error) {
config := &openapi.Config{}
config.Protocol = tea.String("https")
config.RegionId = tea.String("central")
_result = &dingtalkstorage_1_0.Client{}
_result, _err = dingtalkstorage_1_0.NewClient(config)
return _result, _err
}
func _main (args []*string) (_err error) {
client, _err := CreateClient()
if _err != nil {
return _err
}
getDentryOpenInfoHeaders := &dingtalkstorage_1_0.GetDentryOpenInfoHeaders{}
getDentryOpenInfoHeaders.XAcsDingtalkAccessToken = tea.String("<your access token>")
option := &dingtalkstorage_1_0.GetDentryOpenInfoRequestOption{
Version: tea.Int64(1),
Type: tea.String("PREVIEW"),
WaterMark: tea.Bool(true),
CheckLogin: tea.Bool(true),
}
getDentryOpenInfoRequest := &dingtalkstorage_1_0.GetDentryOpenInfoRequest{
UnionId: tea.String("chyxxxxx"),
Option: option,
}
tryErr := func()(_e error) {
defer func() {
if r := tea.Recover(recover()); r != nil {
_e = r
}
}()
_, _err = client.GetDentryOpenInfoWithOptions(tea.String("854xxxxx"), tea.String("989xxxxx"), getDentryOpenInfoRequest, getDentryOpenInfoHeaders, &util.RuntimeOptions{})
if _err != nil {
return _err
}
return nil
}()
if tryErr != nil {
var err = &tea.SDKError{}
if _t, ok := tryErr.(*tea.SDKError); ok {
err = _t
} else {
err.Message = tea.String(tryErr.Error())
}
if !tea.BoolValue(util.Empty(err.Code)) && !tea.BoolValue(util.Empty(err.Message)) {
// err berisi atribut code dan message yang membantu menemukan masalah selama pengembangan
}
}
return _err
}
func main() {
err := _main(tea.StringSlice(os.Args[1:]))
if err != nil {
panic(err)
}
}
'use strict';
// This file is auto-generated, don't edit it
const Util = require('@alicloud/tea-util');
const dingtalkstorage_1_0 = require('@alicloud/dingtalk/storage_1_0');
const OpenApi = require('@alicloud/openapi-client');
const Tea = require('@alicloud/tea-typescript');
class Client {
/**
* Initialize the account Client with a Token
* @return Client
* @throws Exception
*/
static createClient() {
let config = new OpenApi.Config({ });
config.protocol = 'https';
config.regionId = 'central';
return new dingtalkstorage_1_0.default(config);
}
static async main(args) {
let client = Client.createClient();
let getDentryOpenInfoHeaders = new dingtalkstorage_1_0.GetDentryOpenInfoHeaders({ });
getDentryOpenInfoHeaders.xAcsDingtalkAccessToken = '<your access token>';
let option = new dingtalkstorage_1_0.GetDentryOpenInfoRequestOption({
version: 1,
type: 'PREVIEW',
waterMark: true,
checkLogin: true,
});
let getDentryOpenInfoRequest = new dingtalkstorage_1_0.GetDentryOpenInfoRequest({
unionId: 'chyxxxxx',
option: option,
});
try {
await client.getDentryOpenInfoWithOptions('854xxxxx', '989xxxxx', getDentryOpenInfoRequest, getDentryOpenInfoHeaders, new Util.RuntimeOptions({ }));
} catch (err) {
if (!Util.default.empty(err.code) && !Util.default.empty(err.message)) {
// err berisi atribut code dan message yang membantu menemukan masalah selama pengembangan
}
}
}
}
exports.Client = Client;
Client.main(process.argv.slice(2));
using Newtonsoft.Json;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using Tea;
using Tea.Utils;
namespace AlibabaCloud.SDK.Sample
{
public class Sample
{
/// <term><b>Description:</b></term>
/// <description>
/// <para>Initialize the account Client with a Token</para>
/// </description>
///
/// <returns>
/// Client
/// </returns>
///
/// <term><b>Exception:</b></term>
/// Exception
public static AlibabaCloud.SDK.Dingtalkstorage_1_0.Client CreateClient()
{
AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config();
config.Protocol = "https";
config.RegionId = "central";
return new AlibabaCloud.SDK.Dingtalkstorage_1_0.Client(config);
}
public static void Main(string[] args)
{
AlibabaCloud.SDK.Dingtalkstorage_1_0.Client client = CreateClient();
AlibabaCloud.SDK.Dingtalkstorage_1_0.Models.GetDentryOpenInfoHeaders getDentryOpenInfoHeaders = new AlibabaCloud.SDK.Dingtalkstorage_1_0.Models.GetDentryOpenInfoHeaders();
getDentryOpenInfoHeaders.XAcsDingtalkAccessToken = "<your access token>";
AlibabaCloud.SDK.Dingtalkstorage_1_0.Models.GetDentryOpenInfoRequest.GetDentryOpenInfoRequestOption option = new AlibabaCloud.SDK.Dingtalkstorage_1_0.Models.GetDentryOpenInfoRequest.GetDentryOpenInfoRequestOption
{
Version = 1,
Type = "PREVIEW",
WaterMark = true,
CheckLogin = true,
};
AlibabaCloud.SDK.Dingtalkstorage_1_0.Models.GetDentryOpenInfoRequest getDentryOpenInfoRequest = new AlibabaCloud.SDK.Dingtalkstorage_1_0.Models.GetDentryOpenInfoRequest
{
UnionId = "chyxxxxx",
Option = option,
};
try
{
client.GetDentryOpenInfoWithOptions("854xxxxx", "989xxxxx", getDentryOpenInfoRequest, getDentryOpenInfoHeaders, new AlibabaCloud.TeaUtil.Models.RuntimeOptions());
}
catch (TeaException err)
{
if (!AlibabaCloud.TeaUtil.Common.Empty(err.Code) && !AlibabaCloud.TeaUtil.Common.Empty(err.Message))
{
// err berisi atribut code dan message yang membantu menemukan masalah selama pengembangan
}
}
catch (Exception _err)
{
TeaException err = new TeaException(new Dictionary<string, object>
{
{ "message", _err.Message }
});
if (!AlibabaCloud.TeaUtil.Common.Empty(err.Code) && !AlibabaCloud.TeaUtil.Common.Empty(err.Message))
{
// err berisi atribut code dan message yang membantu menemukan masalah selama pengembangan
}
}
}
}
}
Respons
Isi respons
| Nama | Tipe | Deskripsi |
|---|---|---|
| url | String | Tautan file. |
| hasWaterMark | Boolean | Apakah tanda air didukung: - true: Didukung. - false: Tidak didukung. |
Contoh isi respons
HTTP/1.1 200 OK
Content-Type:application/json
{
"url" : "url",
"hasWaterMark" : true
}
Kode error
Jika error dikembalikan saat memanggil API ini, cari pesan error di dokumen Kode error global untuk menemukan solusinya.| HttpCode | Kode error | Pesan error | Deskripsi |
|---|---|---|---|
| 400 | paramError | %s | Error parameter. |
| 400 | paramError.spaceId | %s | Error parameter - spaceId. |
| 400 | paramError.dentryId | %s | Error parameter - dentryId. |
| 400 | paramError.openType | %s | Error parameter - openType. |
| 400 | dentryEditNotSupport | %s | File tidak mendukung pengeditan. |
| 400 | dentryPreviewNotSupport | %s | File tidak mendukung pratinjau. |
| 400 | dentryExtensionNotSupport | %s | Ekstensi file tidak didukung. |
| 400 | fileViral | %s | File virus. |
| 400 | fileMalicious | %s | File berbahaya. |
| 403 | permissionDenied | %s | Pengguna tidak memiliki izin untuk membaca file. |
| 404 | spaceNotExist | %s | Ruang tidak ada. |
| 404 | dentryNotExist | %s | File tidak ada. |
| 500 | systemError | %s | Error sistem. |
| 500 | unknownError | Unknown Error | Error tidak diketahui. |
| 503 | operationTimeout | %s | Permintaan melebihi batas waktu. |