お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の
英語版を参照してください。
概要
Zoho Writer でメールマージを行う際、画像項目には画像を正しく表示するための公開 URL を指定する必要があります。画像が Zoho WorkDrive に保存されている場合は、公開用のダウンロード URLを生成し、その URL を画像項目に使用できます。
本記事では、WorkDrive の UI、WorkDrive API、または Deluge スクリプトを使用して、この公開ダウンロード URL を取得する複数の方法を説明します。
方法 1: WorkDrive ユーザーインターフェイス (UI) を使用する
1. WorkDrive フォルダー内で目的の画像に移動します。
2. その他オプション(縦三点リーダー)をクリックし、[新規ダウンロードリンク] を選択します。
3. ポップアップウィンドウでダウンロードリンクを作成し、コピーします。
4. コピーしたリンクの末尾に ?directDownload=True を追加します。
例:
この最終的なリンクを、Zoho Writer の画像項目の入力値として使用します。
方法 2: WorkDrive API を使用する
次の API を使用して、プログラムからダウンロードリンクを作成できます。
エンドポイント: POST <workdrive ドメイン>/api/v1/links
必須スコープ: WorkDrive.files.CREATE
サンプルリクエストデータ:
{
'data': {
'属性': {
'resource_id': 'g576y886ac79ac5************',
'link_name': 'sample_link',
'link_type': 'ダウンロードする',
'request_user_data': 無効,
'allow_download': 真,
'expiration_date': '2021-12-12',
'download_link': {
'download_limit': '5'
}
},
'種類': 'links'
}
}
サンプルレスポンス:
レスポンス内の 'download_url' キーを確認します。
Writer で使用する前に、download_url の末尾に ?directDownload=True を追加してください。
方法 3: Deluge スクリプトを使用する
手順 1: 画像を WorkDrive にアップロードする
以下のスクリプトを使用して、画像を WorkDrive にアップロードします。
workdrive_folder_id = 'g576*****';
responseData = Zoho。workdrive。uploadFile(image1,workdrive_folder_id,image1。getFileName(),真,'<connection_name>');
workdrive_resourceid = '';
if(responseData != null){
responseList = responseData。取得する('data');
responseData = responseList。取得する(0);
workdrive_resourceid = responseData。取得する('属性').取得する('resource_id');
}
手順 2: ダウンロードリンクを作成する
以下のスクリプトを使用して、WorkDrive 上の画像ファイルに対する外部ダウンロードリンクを作成します。
属性 = Map();
属性。put('resource_id', workdrive_resourceid);
属性。put('allow_download', 真);
属性。put('request_user_data', 無効);
属性。put('link_name', 'sample_link');
属性。put('expiration_date', '2021-12-12');
attributeMap = Map();
attributeMap。put('属性', 属性);
attributeMap。put('種類', 'links');
param = Map();
param。put('data', attributeMap);
paramString = param。toString();
mp = Map();
mp。put('承認する', 'application/vnd.api+json');
makeExternalLink = invokeurl
[
url :'https://workdrive.zoho.com/api/v1/links'
種類 :POST
パラメーター:paramString
ヘッダー:mp
connection:'<connection_name>'
];
linkobj = makeExternalLink。取得する('data');
downloadlink = '';
if(linkobj != null)
{
constructURl = linkobj。取得する('属性').取得する('download_url');
downloadlink = constructURl + '?directDownload=True';
}
サンプルダウンロードリンク:
この最終的なダウンロードリンクを、Writer テンプレート内の画像項目の値として使用します。
概要
UI、API、Deluge のいずれの方法を使用する場合でも、重要な要件は次のとおりです。
-
Zoho WorkDrive から 公開ダウンロード URL を取得すること。
- URL の末尾に ?directDownload=True を追加すること。
これにより、Zoho Writer のマージ処理中に、リンクが画像項目の値として正しく機能するようになります。
1. エラー / 症状: サブフォームの画像や画像マージ項目の一部が、マージ後の PDF に表示されない。特に、Zoho WorkDrive に保存された多数の画像を、外部共有リンクを使ってマージしている場合に発生します。
考えられる原因: Zoho WorkDrive の外部共有リンクには、1 秒あたり 40 リクエストのスロットル制限があります。PDF マージ中、Writer は画像をダウンロードするために複数の並列リクエストを送信します。制限を超えると、一部の画像ダウンロードリクエストが失敗し、その結果、出力 PDF から画像が欠落します。
推奨される解決策:
- 多数の画像をマージする場合は、画像マージ項目に WorkDrive の外部共有リンクを使用しないでください。
- 代わりに、外部共有リンクではなく画像ファイルのダイレクトダウンロードリンクを使用するか、画像の提供元がスロットルされることなく複数の同時ダウンロードリクエストを処理できることを確認してください。
- 画像 URL を更新したうえで、マージを再試行してください。