Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.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
如何从PHP API访问Smartsheet?_Php_Api_Smartsheet Api - Fatal编程技术网

如何从PHP API访问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

这是我第一次尝试使用API和PHP从Smartsheet连接工作表。
我似乎无法连接并给我这个错误

注意:尝试在第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);