如何从PHP API访问Smartsheet?
这是我第一次尝试使用API和PHP从Smartsheet连接工作表。如何从PHP API访问Smartsheet?,php,api,smartsheet-api,Php,Api,Smartsheet Api,这是我第一次尝试使用API和PHP从Smartsheet连接工作表。 我似乎无法连接并给我这个错误 注意:尝试在第22行的C:\xampp\htdocs\smartsheet\test.php中获取非对象的属性 变量$sheetObj为空。 在Authorization:Bearer中,Bearer是什么意思?它是一个象征性的名字还是一直是持票人 我未来的计划是使用PHP写入smartsheet的行中。谁能告诉我我的代码出了什么问题 $baseURL = "https://api.smartsh
我似乎无法连接并给我这个错误 注意:尝试在第22行的C:\xampp\htdocs\smartsheet\test.php中获取非对象的属性 变量
$sheetObj
为空。在
Authorization:Bearer
中,Bearer
是什么意思?它是一个象征性的名字还是一直是持票人
我未来的计划是使用PHP写入smartsheet的行中。谁能告诉我我的代码出了什么问题
$baseURL = "https://api.smartsheet.com/1.1";
$sheetsURL = $baseURL . "/sheets/";
$getSheetURL = $baseURL . "/sheet/xxxxxxxxxxx";
$rowsURL = $baseURL . "/sheet/xxxxxxxxxxx/rows";
$accessToken = "xxxxxxxxxxxxxxxxxx";
// Create Headers array for cURL
$headers = array(
"Authorization: Bearer " . $accessToken,
"Content-Type: application/json"
);
$curlSession = curl_init($getSheetURL);
curl_setopt($curlSession, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curlSession, CURLOPT_RETURNTRANSFER, TRUE);
$getSheetResponseData = curl_exec($curlSession);
$sheetObj = json_decode($getSheetResponseData);
echo "<h1>Sheet name: ". $sheetObj->name ."</h1>";
$baseURL=”https://api.smartsheet.com/1.1";
$sheetsURL=$baseURL。“/张/”;
$getSheetURL=$baseURL。“/sheet/xxxxxxxxxx”;
$rowsURL=$baseURL。“/sheet/xxxxxxxxxx/行”;
$accessToken=“xxxxxxxxxxxxxxxx”;
//为cURL创建头数组
$headers=数组(
“授权:持有人”。$accessToken,
“内容类型:应用程序/json”
);
$curlSession=curl_init($getSheetURL);
curl_setopt($curlSession,CURLOPT_HTTPHEADER,$headers);
curl_setopt($curlSession,CURLOPT_RETURNTRANSFER,TRUE);
$getSheetResponseData=curl\u exec($curlSession);
$sheetObj=json_decode($getSheetResponseData);
echo“图纸名称:”$sheetObj->name.“;
Smartsheet API的1.1版已发布。你会想用的
要执行此操作,只需将$baseURL
更改为:
$baseURL=”https://api.smartsheet.com/2.0";代码>
此外,API中的每个对象将由多个端点表示。因此,要获得工作表,您将使用:
$getSheetURL=$baseURL。“/sheets/xxxxxxxxxx”代码>
要获取要使用的行,请执行以下操作:
$rowsURL=$baseURL。“/sheets/xxxxxxxxxx/行”代码>
承载器是要传递给API的类型,也是Smartsheet API所需的类型 Smartsheet API的1.1版已发布。你会想用的
要执行此操作,只需将$baseURL
更改为:
$baseURL=”https://api.smartsheet.com/2.0";代码>
此外,API中的每个对象将由多个端点表示。因此,要获得工作表,您将使用:
$getSheetURL=$baseURL。“/sheets/xxxxxxxxxx”代码>
要获取要使用的行,请执行以下操作:
$rowsURL=$baseURL。“/sheets/xxxxxxxxxx/行”代码>
承载器是要传递给API的类型,也是Smartsheet API所需的类型 你会看到很多相关的帖子。本质上,这个错误意味着您的代码将某个对象视为实际上不是对象的对象。例如,如果API请求之前由于某种原因失败,并且$sheetObj
的内容实际上不是对象,那么当您尝试访问$sheetObj
的name
属性时,就会发生这种情况
我对PHP不是很熟悉,但我怀疑(根据错误消息,再加上您说“var\u dump($getSheetResponseData)
是Bool(false)
”)的事实,“Get Sheet”请求可能没有返回成功的响应。为了排除故障,我建议您尝试运行完全相同的“Get Sheet”使用Postman()之类的工具或通过cURL命令行进行请求(即使用相同的URI,包括工作表Id),然后查看是否得到成功响应。如果您可以通过Postman或cURL来处理请求,那么更新代码以发送相同的请求应该很简单,从而获得成功的响应。有关使用Postman或cURL进行API故障排除技术的信息,请参阅Smartsheet API文档的本节: 你会看到很多相关的帖子。本质上,这个错误意味着您的代码将某个对象视为实际上不是对象的对象。例如,如果API请求之前由于某种原因失败,并且$sheetObj
的内容实际上不是对象,那么当您尝试访问$sheetObj
的name
属性时,就会发生这种情况
我对PHP不是很熟悉,但我怀疑(根据错误消息,再加上您说“var\u dump($getSheetResponseData)
是Bool(false)
”)的事实,“Get Sheet”请求可能没有返回成功的响应。为了排除故障,我建议您尝试运行完全相同的“Get Sheet”使用Postman()之类的工具或通过cURL命令行进行请求(即使用相同的URI,包括工作表Id),然后查看是否得到成功响应。如果您可以通过Postman或cURL来处理请求,那么更新代码以发送相同的请求应该很简单,从而获得成功的响应。有关使用Postman或cURL进行API故障排除技术的信息,请参阅Smartsheet API文档的本节: 和提供了有关如何解决问题和一些可能原因的良好信息
您提供的代码实际上有两个问题
正如Scott提到的,您必须指向API的2.0版本
$baseURL=”https://api.smartsheet.com/2.0";
您的$getSheetURL
中有一个输入错误。如文件所述,url是/sheets/{sheetId}
。因此,您的代码应该具有以下内容:
$getSheetURL=$baseURL。“/sheets/xxxxxxxxxx”;
这是处于工作状态的代码。确保替换您的\u令牌
,并查看var\u dump
(我添加到您的代码中)的输出,以查看它给您带来的消息
两者都提供了关于如何解决问题和一些可能原因的良好信息
您提供的代码实际上有两个问题
正如Scott提到的,您必须指向API的2.0版本
$baseURL=”https://api.smartsheet.com/2.0";
您的$getSheetURL
中有一个输入错误。如文件所述,url是/sheets/{she
$baseURL = "https://api.smartsheet.com/2.0/sheets";
// Insertar access token generado en SmartSheet
$accessToken = "YOUR_TOKEN";
// Creación del Headers Array para el Curl
$headers = array(
"Authorization: Bearer $accessToken",
"Content-Type: application/json");
//Conexión de la API de SmartSheet
$curlSession = curl_init($baseURL);
curl_setopt($curlSession, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curlSession, CURLOPT_RETURNTRANSFER, true);
//Establece la sesión del Curl
$smartsheetData = curl_exec($curlSession);
// Asignar respuesta a un objeto PHP
$createObj = json_decode($smartsheetData);