Update Shared Details For View
Update the existing sharing configuration for views.
REQUEST URI
https://<ZohoAnalytics_Server_URI>/restapi/v2/workspaces/<workspace-id>/views/<view-id>/share
Put
oauthscope: ZohoAnalytics.share.update
QUERY PARAMETERS
| Parameter Name | Description | 
|---|---|
| CONFIG* | JSONObject Config parameter specifications are available in the below section.  | 
FIELDS FOR CONFIG JSON
| Key | Description | 
|---|---|
| emailIds* | JSONArray The email address of the users to whom the views need to be shared. Sample: ["emailId1","emailId2"] | 
| groupIds* | JSONArray Ids of the group for which the views need to be shared. Sample: ["viewId1","viewId2"] | 
| columns | Array of JSONObject To limit the share option to specified columns from specified tables. Sample:  [{"tableName":"table1","columnNames":["column1","column2"]}] | 
| permissions* | JSONObject Permissions JSON object (permission attributes table). Sample: {"read":true,"vud":true,"export":true} | 
| criteria | String To apply filter criteria while sharing a view to users. The specified criteria will be applied to the reports shared, thereby filtering the data viewed, when the report is accessed by the shared user. Sample: {"criteria":"\"SalesTable\".\"Region\"='East'"}Refer this  | 
| inheritParentFilterCriteria | Boolean This is valid only for reports(not tables). If true, then its parent tables’ criteria is also taken into account while sharing.  | 
| domainName | String Name of domain. To share views to the white label domain.  | 
| vudColumns | Array of JSONObject To limit the view underlying data option to specified columns from specified tables. This will be valid only if the vud permission is set to true.Sample: [{"tableName":"table1","columnNames":["column1","column2"]}] | 
| drillColumns | Array of JSONObject To limit the drill down option to specified columns from specified tables. This will be valid only if the drillDown permission is set to true.Sample: [{"tableName":"table1","columnNames":["column1","column2"]}] | 
| includeAllColsForVUD | Boolean To specify if all columns in the table included in the underlying data. Default value - false.  | 
POSSIBLE ERROR CODES
Sample Request:
Copiedcurl https://analyticsapi.zoho.com/restapi/v2/workspaces/<workspace-id>/views/<view-id>/share --data-urlencode 'CONFIG={"permissions":{"read":"true"},"emailIds":["<email-id1>","<email-id2>"]}' 
-X 'PUT' 
-H 'ZANALYTICS-ORGID: <org-id>' 
-H 'Authorization: Zoho-oauthtoken <access_token>'Copiedusing System;
using System.Collections.Generic;
using ZohoAnalytics;
namespace ZohoAnalyticsTest
{
    class Program
    {
        long orgId = 55522777;
        long workspaceId = 35130000001055707;
        long viewId = 35730000007354002;
        public void UpdateSharedDetails(IAnalyticsClient ac)
        {
            List<string> emailIds = new List<string>();
            emailIds.Add("testuser_1@zoho.com");
            Dictionary<string, bool> permissions = new Dictionary<string, bool>();
            permissions.Add("read", true);
            permissions.Add("export", true);
            Dictionary<string, object> config = new Dictionary<string, object>();
            config.Add("emailIds", emailIds);
            config.Add("permissions", permissions);
            IViewAPI view = ac.GetViewInstance(orgId, workspaceId, viewId);
            view.UpdateSharedDetails(config);
            Console.WriteLine("success");
        }
        static void Main(string[] args)
        {
            string clientId = "1000.xxxxxxx";
            string clientSecret = "xxxxxxx";
            string refreshToken = "1000.xxxxxxx.xxxxxxx";
            try
            {
                IAnalyticsClient ac = new AnalyticsClient(clientId, clientSecret, refreshToken);
                Program obj = new Program();
                obj.UpdateSharedDetails(ac);
            }
            catch (ServerException ex)
            {
                Console.WriteLine("Server exception - " + ex.GetErrorMessage());
            }
            catch (Exception ex)
            {
                Console.WriteLine("Other exception - " + ex.Message);
            }
        }
    }
}Copiedpackage main
import (
    "fmt"
    ZAnalytics "zoho/pkg/analyticsclient"
)
var(
    clientId = "1000.xxxxxxx"
    clientSecret = "xxxxxxx"
    refreshToken = "1000.xxxxxxx.xxxxxxx"
    orgId = "55522777"
    workspaceId = "35130000001055707"
    viewId = "35730000007354002"
)
func UpdateSharedDetails(ac ZAnalytics.Client) {
    emailids := [1]string{}
    emailids[0] = "testuser_1@zoho.com"
    permissions := map[string]bool{}
    permissions["read"] = true
    permissions["export"] = true
    config := map[string]interface{}{}
    config["emailIds"] = emailids
    config["permissions"] = permissions
    view := ZAnalytics.GetViewInstance(&ac, orgId, workspaceId, viewId)
    err := view.UpdateSharedDetails(config)
    if(err != nil){
        fmt.Println("Error - " + err.ErrorMessage)
    }else{
        fmt.Println("success")
    }
}
func main() {
    ac := ZAnalytics.GetAnalyticsClient(clientId, clientSecret, refreshToken)
    UpdateSharedDetails(ac)
}Copiedimport com.zoho.analytics.client.*;
import org.json.*;
public class Test {
    private long orgId = 55522777l;
    private long workspaceId = 35130000001055707l;
    private long viewId = 35730000007354002l;
    public static void main(String args[]){
        String clientId = "1000.xxxxxxx";
        String clientSecret = "xxxxxxx";
        String refreshToken = "1000.xxxxxxx.xxxxxxx";
        Test tObj = new Test();
        AnalyticsClient ac = new AnalyticsClient(clientId, clientSecret, refreshToken);
        try {
            tObj.updateSharedDetails(ac);
        }
        catch (ServerException ex) {
            System.out.println("Server exception - ErrorCode : " + ex.getErrorCode() + ", ErrorMessage : "  + ex.getErrorMessage());
        }
        catch (ParseException ex) {
            System.out.println("Parser exception - ErrorMessage : "  + ex.getResponseMessage());
        }
        catch (Exception ex) {
            System.out.println("Other exception - ");
            ex.printStackTrace();
        }
    }
    public void updateSharedDetails(AnalyticsClient ac) throws Exception {
        JSONArray emailIds = new JSONArray();
        emailIds.put("testuser_1@zoho.com");
        JSONObject permissions = new JSONObject();
        permissions.put("read", true);
        permissions.put("export", false);
        JSONObject config = new JSONObject();
        config.put("emailIds", emailIds);
        config.put("permissions", permissions);
        ViewAPI view = ac.getViewInstance(orgId, workspaceId, viewId);
        view.UpdateSharedDetails(config);
        System.out.println("success");
    }
}Copied<?php
    require 'AnalyticsClient.php';
    class Test
    {
        public $ac = NULL;
        public $client_id = "1000.xxxxxxx";
        public $client_secret = "xxxxxxx";
        public $refresh_token = "1000.xxxxxxx.xxxxxxx";
        public $org_id = "55522777";
        public $workspace_id = "35130000001055707";
        public $view_id = "35730000007354002";
        function __construct() {
            $this->ac =  new AnalyticsClient($this->client_id, $this->client_secret, $this->refresh_token);
        }
        function updateSharedDetails() {
        
            $email_ids = array("testuser_1@zoho.com");
            $permissions = array();
            $permissions["read"] = "true";
            $permissions["export"] = "true";
            $config = array();
            $config["emailIds"] = $email_ids;
            $config["permissions"] = $permissions;
            
            $view = $this->ac->getViewInstance($this->org_id, $this->workspace_id, $this->view_id);
            $view->updateSharedDetails($config);
            echo "success\n";
        }
    }
    $test_obj = new Test();
    try {
        $test_obj->updateSharedDetails();
    }
    catch(ServerException $se) {
        echo "Server exception : " . $se->getErrorMessage() . "\n";
    }
    catch(IOException $ioe) {
        echo "IO exception : " . $ioe->getErrorMessage() . "\n";
    }
    catch(ParseException $pe) {
        echo "Parser exception : " . $pe->getErrorMessage() . "\n";
    }
    catch(Exception $e) {
        echo "Exception : " . $e->getErrorMessage() . "\n";
    }
?>Copiedfrom __future__ import with_statement
from AnalyticsClient import AnalyticsClient
import sys
import json
class Config:
    CLIENTID = "1000.xxxxxxx";
    CLIENTSECRET = "xxxxxxx";
    REFRESHTOKEN = "1000.xxxxxxx.xxxxxxx";
    ORGID = "55522777";
    WORKSPACEID = "35130000001055707";
    VIEWID = "35730000007354002";
class sample:
    ac = AnalyticsClient(Config.CLIENTID, Config.CLIENTSECRET, Config.REFRESHTOKEN)
    def update_shared_details(self, ac):        
        email_ids = []
        email_ids.append("testuser_1@zoho.com")
        
        permissions = {}
        permissions["read"] = True
        permissions["export"] = True
        conf = {}
        conf["emailIds"] = email_ids
        conf["permissions"] = permissions
        view = ac.get_view_instance(Config.ORGID, Config.WORKSPACEID, Config.VIEWID)
        view.update_shared_details(conf)
        print("success")
try:
    obj = sample()
    obj.update_shared_details(obj.ac);
except Exception as e:
    print(str(e))Copiedvar analyticsClient = require('./AnalyticsClient');
var clientId = '1000.xxxxxxx';
var clientSecret = 'xxxxxxx';
var refreshtoken = '1000.xxxxxxx.xxxxxxx';
var orgId = '55522777';
var workspaceId = '35130000001055707';
var viewId = '35730000007354002';
var ac = new analyticsClient(clientId, clientSecret, refreshtoken);
var emailIds = [];
var permissions = {};
var config = {};
emailIds.push('');
emailIds.push('');
permissions['read'] = true;
permissions['share'] = true;
config['emailIds'] = emailIds;
config['permissions'] = permissions;
var view = ac.getViewInstance(orgId, workspaceId, viewId);
view.updateSharedDetails(config).catch((error) => {
    console.log('errorCode : '+error.errorCode);
    console.log('errorMessage : '+error.errorMessage);
});CopiedorgId = "55522777";
workspaceId = "35130000001055707";
viewId = "35130000004356002";
headersMap = Map();
headersMap.put("ZANALYTICS-ORGID",orgId);
emailIds = {};
emailIds.add("user+1@zoho.com");
emailIds.add("user+2@zoho.com");
permissions = Map();
permissions.put("read","true");
permissions.put("export","true");
config = Map();
config.put("emailIds",emailIds);
config.put("permissions",permissions);
paramsMap = Map();
paramsMap.put("CONFIG",config.toString());
response = invokeurl
[
  url :"https://analyticsapi.zoho.com/restapi/v2/workspaces/" + workspaceId + "/views/" + viewId + "/share"
  type :PUT
  parameters:paramsMap
  headers:headersMap
  connection:"analytics_oauth_connection"
];Sample value for CONFIG parameter:
Copied{
    "permissions": {"read": "true"},
    "emailIds": [ "<email-id1>", "<email-id2>" ]
}Sample Response:
CopiedHTTP/1.1 204 No Content