JS SDKの概要

JS SDKの概要

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

前提条件

次の SDK メソッドを呼び出す前に、コード内に JS https://js.zohocdn.com/projects/js/client_sdk.min.js を含めてください。
Zoho Projects のスタイルを使用するには、コード内に CSS https://css.zohocdn.com/projects/styles/zps-extn/client_sdk.css を含めてください。

init

拡張機能を初期化します。


zohoprojects.init().then(function(){});                                          
 
このメソッドは必ず最初に呼び出してください。ほかの SDK メソッドは、このメソッドが呼び出された後でのみ動作します。init の読み込み中にほかの関数を使用したい場合は、init 関数内でそれらを使用できます。


 zohoprojects.init().then(function () {
      zohoprojects.get('portal.name').then(function (response) 
      });

metadata

拡張機能の支払い情報と設定の詳細を取得します。

zohoprojects.metadata().then(function(response)
  {
       /* output
  {
        'data': {
        'configs': [
             {
             'name': 'Name',
             'type': 'text',
             'is_mandatory': true,
             'is_secure': false,
             'description': 'Enter your name',
             'value': 'Helen Collins'
               },
                {
                 'name': 'Employee ID',
                 'type': 'text',
                 'is_mandatory': true,
                 'is_secure': false,
                   'description': 'Enter your Emp. ID',
                   'value': 'EMP08'
                    }
                     ],
                    'payments_info': {
                     'edition': 'trial'
                     },
                     'status': 'success'
                      }
                     }
                    */
           });                              

context

現在の場所のタブ名と項目 ID を取得します。タブ名は「tasks」または「issues」で、項目 IDは、それぞれのタスクまたは課題の ID です。


 zohoprojects.context().then(function(response)
 {
 /* output
 {
     'module_name': 'tasks',
      'entity_id': '27092000000031079'
  }
     */
      });                                         

Notes ウィジェットの配置場所が「app_settings」「attachment_picker」「blueprint_during」「top_band」の場合、項目 ID は提供されません。

取得する

現在の場所におけるインスタンス、現在のユーザー、ポータル、プロジェクト、タスク、課題の詳細を取得します。


zohoprojects.get('task.id
').then(function(response)
{
/* output
 {
'data': 27092000000031080,
'status': 'success'
}
*/
});
                                                
取得する メソッドで使用できるキーは次のとおりです。

インスタンス

  • instances

現在のユーザー

  • current_user

ポータル

  1. portal.trial_enabled
  2. portal.settings
  3. portal.gmt_time_zone
  4. portal.project_count
  5. portal.roles
  6. portal.avail_user_count
  7. portal.locale
  8. portal.project_prefix
  9. portal.available_projects
  10. portal.max_user_count
  11. portal.profile_id
  12. portal.name
  13. portal.id_string
  14. portal.bug_plural
  15. portal.plan
  16. portal.bug_plan
  17. portal.bug_singular
 ポータル。初期設定
  18. ポータル。拡張機能
  19. portal.is_crm_partner
  20. portal.is_display_projectprefix
  21. portal.is_display_taskprefix
  22. portal.is_new_plan
  23. portal.layouts
  24. portal.links

プロジェクト

  1. project.is_strict
  2. project.roles
  3. project.bug_count
  4. project.owner_id
  5. project.taskbug_prefix
  6. project.links
  7. project.description
  8. project.milestone_count
  9. project.updated_date_long
  10. project.task_count
  11. project.updated_date_format
  12. project.workspace_id
  13. project.billing_status
  14. project.key
  15. project.is_chat_enabled
  16. project.owner_name
  17. project.profile_id
  18. project.enabled_tabs
  19. project.name
  20. project.is_public
  21. project.layout_details
  22. project.status
  23. project.permissions
  24. project.IS_BUG_ENABLED
  25. project.bug_defaultview

  26. project.bug_prefix
  27. project.cascade_setting
  28. project.completed_on
  29. project.completed_on_long
  30. project.created_date
  31. project.created_date_format
  32. project.created_date_long

  33. project.custom_status_id
  34. 
project.id_string
  35. project.show_project_overview

  36. project.start_date

  37. project.start_date_long
  38. project.updated_date

  39. project.users
  40. project.custom_fields_ja
  41. project.custom_fields

タスク

  1. タスク.name
  2. task.completed
  3. タスク.created_by
  4. タスク.priority
  5. タスク.percent_complete
  6. タスク.start_date
  7. タスク.end_date
  8. タスク.dependency
  9. タスク.duration
  10. タスク.description
  11. タスク.link
  12. タスク.created_person
  13. タスク.created_time
  14. タスク.created_time_format
  15. タスク.created_time_long

  16. タスク.custom_fields
  17. タスク.depth (サブタスクにのみ適用)
  18. タスク.duration_type

  19. タスク.id_string
  20. タスク.is_comment_added

  21. タスク.is_forum_associated

  22. タスク.is_recurrence_set

  23. タスク.is_reminder_set
  24. タスク.isparent
タスク.key

  25. タスク.last_updated_time
  26. タスク.last_updated_time_format

  27. タスク.last_updated_time_long
  28. タスク.milestone_id

  29. タスク.order_sequence
  30. タスク.parent_task_id (サブタスクにのみ適用)
  31. タスク.parenttask_id (サブタスクにのみ適用)
  32. タスク.root_task_id (サブタスクにのみ適用)
  33. タスク.status
  34. タスク.task_followers
  35. タスク.tasklist
  36. タスク.work
タスク.work_type
  37. task.comments
  38. タスク.subtasks

  39. タスク.custom_fields
  40. タスク.attachments

Issue

  1. issue.tab
  2. issue.created_time_long
  3. issue.custom_fields
  4. issue.status
  5. issue.reproducible
  6. issue.link
  7. issue.severity
  8. issue.reported_person
  9. issue.subject
  10. issue.flag
  11. issue.assignee_name
  12. issue.reporter_id
  13. issue.classification
  14. issue.created_time_format
  15. issue.completed
  16. issue.created_time
  17. issue.key
  18. issue.attachment_count
  19. 
issue.bug_number
  20. 
issue.bug_prefix

  21. issue.comment_count
  22. 
issue.escalation_level
  23. 
issue.id_string

  24. issue.reporter_email
  25. 
issue.reporter_non_zuser
  26. 
issue.updated_time
  27. 
issue.updated_time_format
  28. 
issue.updated_time_long
  29. issue.attachments
  30. issue.comments
  31. issue.views

Milestone

  1. milestone.completed
  2. milestone.comments_count
  3. milestone.created_time
  4. milestone.created_time_format
  5. milestone.created_time_long
  6. milestone.end_date
  7. milestone.end_date_format
  8. milestone.end_date_long
  9. milestone.flag
  10. milestone.has_comments
  11. milestone.id
  12. milestone.id_string
  13. milestone.is_workfield_removed
  14. milestone.last_updated_time
  15. milestone.last_updated_time_format
  16. milestone.last_updated_time_long
  17. milestone.link
  18. milestone.name
  19. milestone.owner_id
  20. milestone.owner_name
  21. milestone.owner_zpuid
  22. milestone.project
  23. milestone.sequence
  24. milestone.start_date
  25. milestone.start_date_format
  26. milestone.start_date_long
  27. milestone.status
  28. milestone.status_det

Chosen files

アップロード待ちキューに含まれるファイルは、chosen_files に保存されます。このキーは添付ファイルピッカーでのみサポートされます。
  • chosen_files

Deployment 種類

現在のデータセンターを取得します。

zohoprojects.get('deployment_type').then(function() {
/* output
com
 */
 });
                                                

権限

ポータルレベルのすべての権限と、現在のユーザーの権限詳細を取得するためのキーを用意しています。
  1. all_profiles: ポータル内のすべての権限情報を取得します。
  2. current_profile: 現在のユーザーの権限詳細を取得します。

Theme

Zoho プロジェクトでは、ポータル用のテーマをサポートしています。
  • current_theme: 現在のテーマを取得します。
zohoprojects.get('current_theme').then(function() {
 /* output
{mode: 'default', zpPrimary: '255, 100, 0', zpPrimaryHover: '255, 247, 243'}
 */
 });
                                                

Blueprint During

  • blueprint_during: During アクションで設定された値を取得します。
zohoprojects.get('blueprint_during').then(function(res) {
 /* output
[ {field_id: 'UDF_CHAR1', is_visible: true, is_pii: false, is_encrypted: false}
{field_id: 'UDF_CHAR2', is_visible: true, is_pii: false, is_encrypted: false}]
 */
});

Transition

現在のトランジションの詳細を取得します。
  1. transition: 現在のトランジションの ID と名前を取得します。
  2. blueprint : ブループリントの ID と名前を取得します。

set

現在のコンテキスト内の特定のタスクまたは課題の属性を更新します。


var nameObj={name:'Create a new checklist'};
zohoprojects.set('task',nameObj).then(function(response)
  {
    /* output
   {
   'data': {
   'tasks': [
     {
      'milestone_id': '2*******************2',
       'link': {
       'timesheet': {
          'url': 'https://p*************e.********.com/restapi/portal/5******7/projects/2****************9/tasks/2****************9/logs/'
         },
         'self': {
           'url': 'https://p*************e.********.com/restapi/portal/5******7/projects/2****************9/tasks/2****************9/'
          }
         },
  'description': '',
  'duration': '0',
  'last_updated_time_long': 1542193097398,
   'details': {
   'owners': [
      {
      'name': 'JOHN MARSH',
       'id': '5************3'
       }
      ]
     },
'id': 2************0,
'key': 'WEUT-T1',
'created_person': 'Steve Banks',
'created_time_long': 1525668983347,
'created_time': '05-07-2018',
'is_reminder_set': false,
'is_recurrence_set': false,
'created_time_format': '05-07-2018 10:26:23 AM',
'subtasks': false,
'work': '0:00',
'custom_fields': [
{
'column_name': 'UDF_LONG1',
'label_name': 'Expense Amount',
'value': '24573'
},
{
'column_name': 'UDF_LONG3',
'label_name': 'sample',
'value': '0'
},
{
'column_name': 'UDF_LONG2',
'label_name': 'test',
'value': '200'
}
],
'isparent': false,
'work_type': 'work_hrs_per_day',
'completed': false,
'priority': 'None',
'created_by': '5******3',
'percent_complete': '0',
'last_updated_time': '11-14-2018',
'name': 'Create a new checklist',
'id_string': '2************9',
='last_updated_time_format': '11-14-2018 04:28:17 PM',
'tasklist': {
'name': 'General',
'id': '2************7'
},
'order_sequence': 1,
'status': {
'name': 'Open',
'id': '2************1',
'type': 'open',
'color_code': ''
}
}
]
},
'status': 'success'
}
*/
});                                           
タスクの set メソッドでは、次のキーを使用できます。

タスク

  1. person_responsible
  2. owner_work
  3. work_type
  4. 名前
  5. start_date
  6. end_date
  7. start_time
  8. end_time
  9. percent_complete
  10. 期間
  11. duration_type
  12. リマインダー
  13. 優先度
  14. 説明
  15. custom_fields (このキーはカスタム項目を作成する場合にのみ使用できます。)
  16. clear_date
  17. index
  18. range
  19. json_string
  20. subtasks (このキーはサブタスクを作成する場合にのみ使用できます。サブタスクのパラメーターについてはこちらをクリックしてください。)
以下のキーは、課題に対する set メソッドで使用できます。

Issues

  1. 件名
  2. 説明
  3. 担当者
  4. flag
  5. classification_id
  6. milestone_id
  7. due_date
  8. module_id
  9. severity_id
  10. reproducible_id
  11. status_id
  12. resolution
  13. affectedmile_id
以下のキーは、プロジェクトを更新するための set メソッドで使用できます。

プロジェクト

  1. 名前
  2. 説明
  3. ステータス
  4. start_date
  5. end_date
  6. strict_project
  7. 公開する
  8. group_id
  9. completed_on
  10. UDF_CHAR([1-9]|[1-2][0-9]|30). 例: UDF_CHAR1
  11. UDF_TEXT([1-9]|1[0-5])
  12. UDF_LONG([1-9]|1[0-5])
  13. UDF_USER[1-5]
  14. UDF_DOUBLE([1-9]|[1-2][0-9]|3[0-5])
  15. UDF_DATE[1-5]
  16. UDF_ENCRYPT([1-9]|10)
  17. 担当者
  18. billing_method
  19. bill_status
  20. show_project_overview
  21. custom_status
プロジェクトマイルストーンを更新するための set メソッドでは、次のキーを使用できます。

Milestone

  1. 名前
  2. start_date
  3. end_date
  4. 担当者
  5. flag
  6. 予算
  7. threshold
  8. revenue_budge
linkfiles キーを使用して、ファイルを任意の場所に関連付けます。このキーは、次の場所をサポートします: タスク 詳細 タブIssue 詳細 タブ添付ファイル picker。配列の最大サイズは 10 で、次の項目が必須です: id、名前、種類、permanent_url、download_url、size、created_by、created_time。画像ファイルの場合は preview_url も必須です。
  • linkfiles

linkfiles=[{
'created_time': 1561028014712,
'id': '1LavBS5sauJ-AAFJZWp8Ch9Cp2ehydahk',
'type': 'image/jpeg',
'created_by': 'Patricia Boyle',
'permanent_url': 'https://***************',
'size': 7409,
'preview_url': 'https://******************',
'name': 'sample-image.jpeg',
'download_url': 'https://drive.google.com/a/web-mailhosting.com/uc?id=1LavBS5sauJ-AAFJZWp8Ch9Cp2ehydahk&export=download',
}]
zohoprojects.set('linkfiles', linkFiles).then(function (response) {
zohoprojects.invoke('attachment_picker.close');
});

Blueprint During

ブループリント遷移の During アクションを設定する際に値を指定します。

var sample = [ {field_id: 'UDF_CHAR1', is_visible: true, is_pii: false, is_encrypted: false}
{field_id: 'UDF_CHAR2', is_visible: true, is_pii: false, is_encrypted: false}];
zohoprojects.set('blueprint_during', sample).then(function(res) {
  /* output
[ {field_id: 'UDF_CHAR1', is_visible: true, is_pii: false, is_encrypted: false}
{field_id: 'UDF_CHAR2', is_visible: true, is_pii: false, is_encrypted: false}]
*/
 });                                

エクスポートする 場所

タスクをクラウドストレージサービスにエクスポートします。エクスポート詳細ポップアップに表示するデータ項目を最大 5 つまで選択できます。表示データにリンクパラメーターを追加した場合、選択した場所は簡単にアクセスできるようハイパーリンクとして表示されます。


let paramObj = {
'custom_data': {
'path': 'G/pics',
'portal_id': '89031033',
'project_id': '185977000000199005'
},
'display_data' : [
{
'名前': 'Path',
'値': 'G's Drive',
'リンク': 'https://drive.google.com/drive/folders/1e1xWqREV'
}, {
'名前': 'アプリ名',
'値': 'G- Drive'
}
]
      
zohoprojects。set('実行する', paramObj);

request

plugin-manifest.json ファイルで定義された接続を使用して、拡張機能からサードパーティの URL を呼び出します。外部連携のリンク名を指定しない場合、レスポンスは入力内容に基づいて返されます。


var file = document.getElementById('inputbox').files[0];
var file_detail = {
type: 'GET',
files: [{
uploaddoc : file
type : 'binary' //If the file is uploaded as binary
}],
parameters: {
fields: 'id,name, thumbnailLink, webViewLink, webContentLink'
}
};
var url = 'https://www.googleapis.com/drive/v3/files/1-QabBt69U8myXYRDVU-1YiCo2k-JWRfu';
zohoprojects.request(url, file_detail, 'google_drive').then(function (response)
 /* Output
 { 
'result': {
'webContentLink': 'https://drive.google.com/uc?id=1-QabBt69U8myXYRDVU-1YiCo2k-JWRfu&export=download',
'name': 'Eiffel_Tower_01.jpg',
'webViewLink': 'https://drive.google.com/file/d/1-QabBt69U8myXYRDVU-1YiCo2k-JWRfu/view?usp=drivesdk',
'id': '1-QabBt69U8myXYRDVU-1YiCo2k-JWRfu',
'thumbnailLink': 'https://lh3.googleusercontent.com/nhyq9mHrGDOZfNdQUHRj_xVlOoNAP5PEYkW4X2svGXKjVt53MvMGfjhQ2PlTv4cmv5-PgbjrR-c=s220'
},
'status': 'success'
}
*/});
Argument 名前 データの種類 説明
URL string 拡張機能から呼び出すサードパーティのURL。
object JSONObject キー データの種類
    種類 string 'GET' / 'POST' / 'PUT' / 'DELETE' / 'PATCH'
    パラメーター JSONObject APIのリクエストパラメーター。
    ヘッダー JSONObject APIのヘッダー。
    本文 JSONObject

APIの本文。

 

    files JSONArray

ファイルをアップロードするためのパラメーター。

値: 実際のファイル。

*実際のファイルがアップロードされる場合、本文は無視されます。

*種類をbinaryと指定した場合、ファイルはバイナリとして送信されます。この場合、ファイルの本文も考慮されます。

    replace_secure_config Boolean

plugin-manifest.json ファイルの is_secure パラメーターが true の場合、このパラメーターの値を true に設定します。

URL と object パラメーターの値は、次の形式で渡すことができます: {{名前}} (設定名)

Zoho Projects は設定値を置き換えます。
メモ: 既定値は false です。

connection_link_name string 外部連携のリンク名。zapps Web サイトで作成済みのものを指定します。外部連携のリンク名は、plugin-manifest から取得できます。

関数の実行

トリガーなしで Sigma 内のカスタム関数を実行します。関数を実行するには、function_uuid とそのバージョンを指定する必要があります。
 
let customData = {'名前':'新しいチェックリストを作成'};
zohoprojects。function。実行する('c8a9e660-95e2-11ef-9d3c-2d653cc724d7', '1。0', customData).then(function(response){
/* 出力
{ 'result':{'output':'{}','タスク':[],'outputType':'無効','メッセージ':{}},
'unique_id':'c8a9e660-95e2-11ef-9d3c-2d653cc724d7',
'コード':3009,
'function_id':1234567890,
'メッセージ':'Function Executed Successfully',
'ステータス':'完了'
}
*/
});

Notes
カスタムデータを取得するには、次の構文を使用します:
metaData = data。getJSON('パラメーター').getJSON('metadata').toMap();
データの内容 = metaData。getJSON('custom_data');