Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检测沙箱类型(Salesforce)_Salesforce_Simple Salesforce - Fatal编程技术网

检测沙箱类型(Salesforce)

检测沙箱类型(Salesforce),salesforce,simple-salesforce,Salesforce,Simple Salesforce,Salesforce支持不同的沙盒 例如“部分”或“开发”沙箱 有没有办法检测我的脚本连接到哪种沙盒 我使用Python和simple_salesforce。我的Python不够好。我可以给你一些提示,但你得自己做一点试验 “附加功能”表示有一个内部类可以向您公开会话id和实例 您可以使用这些来创建对的HTTP GET调用 Authorization: Bearer {session_id} {instance}/services/data/v51.0/limits 资源将告诉您(除其他外)此

Salesforce支持不同的沙盒

例如“部分”或“开发”沙箱

有没有办法检测我的脚本连接到哪种沙盒


我使用Python和simple_salesforce。

我的Python不够好。我可以给你一些提示,但你得自己做一点试验

“附加功能”表示有一个内部类可以向您公开会话id和实例

您可以使用这些来创建对的HTTP GET调用

Authorization: Bearer {session_id}
{instance}/services/data/v51.0/limits
资源将告诉您(除其他外)此组织中可用的数据和文件存储是什么。它将返回类似于的JSON

{
    ...
    "DataStorageMB" : {
        "Max" : 200,
        "Remaining" : 196
    },
    ...
}
使用的
datastorageb.Max
和底部的表来确定您的位置。200=>Developer,1024=>Developer Pro


编辑-如果您要使用Apex(可能作为REST服务公开,“simple salesforce”具有很好的内置访问功能)


我得到:
SalesforceRefusedRequest:请求被拒绝https://foo.my.salesforce.com/services/data/v42.0/limits/. 响应内容:[{'message':'limits resource not enabled','errorCode':'API_DISABLED_FOR_ORG'}]
连接用户的配置文件是否勾选了复选框:“API enabled”,“View Setup and Configuration”,“Manage Users”?我现在使用另一个帐户,它拥有更多权限。现在它起作用了。非常感谢你。虽然用这种方法检测沙箱类型是相当肮脏的。Salesforce是否有一个反馈渠道,您可以在其中创建功能请求?发布一个想法,或者像任何人都可以发布的那样更新现有想法。您需要有效的sf“production like”登录(免费开发者版或开拓者帐户也可以,您不需要付费客户/注册合作伙伴)。如果你有生产访问权限-应该有帮助和培训链接,根据支持级别($),你应该能够向他们提出一个案例,或者在SF社区中“仅仅”发表文章,挑选其他客户的想法。在Apex(服务器端语言)中,你可以将这个“200”作为一行。您可以让REST服务返回沙盒类型,但它仍然有点愚蠢,这是另一个API调用。你可以和你的管理员讨论做一个“自定义设置”来保存信息,并在创建沙盒时将值写入其中()嘿,你为什么要悬赏这个问题,我认为一切都好?不管怎么说,它最终还是和我在一起,而不是吸引到更好的答案。谢谢我猜;)这里还需要什么吗?@eyescream赏金是为了“奖励现有答案”。是的,一切都很好。
Integer storageLimit = OrgLimits.getMap().get('DataStorageMB').getLimit();
System.debug(storageLimit);
String sandboxType;
switch on storageLimit{
    when 200 {
        sandboxType = 'Developer';
    }
    when 1024 {
        sandboxType = 'Developer Pro';
    }
    when 5120 {
        sandboxType = 'Partial Copy';
    }
    when else {
        sandboxType = 'Full Copy';
    }
}
System.debug(sandboxType);