当前位置: 首页 > 知识库问答 >
问题:

Marketo REST API资产令牌有效吗?

华宣
2023-03-14

我遵循文件的这一部分:http://developers.marketo.com/rest-api/assets/tokens/我总是得到以下错误:字段不能为空。

有人把它修好了吗?

public function create_token($folder_id,$name,$content,$folder_type = 'Program')
{
    $folder_id = intval($folder_id);
    $endpoint = 'rest/asset/v1/folder/'.$folder_id.'/tokens';
    $body = new stdClass();
    $body->folderType = $folder_type;
    $body->name = $name;
    $body->type = 'rich text';
    $body->value = $content;
    $body_encoded = json_encode($body);

    echo $url = $this->url . $endpoint . ".json?access_token=" . self::$token;

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: x-www-form-urlencoded'));
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $body_encoded);
    $response = curl_exec($ch);
    curl_close($ch);
    return json_decode($response);
}

内容类型标题的原因是Marketo的建议:https://www.screencast.com/t/CL5ZtPo1o

这是我不断收到的请求的答案:

object(stdClass)#1934 (4) {


["success"]=>
  bool(false)
  ["warnings"]=>
  array(0) {
  }
  ["errors"]=>
  array(4) {
    [0]=>
    object(stdClass)#1935 (2) {
      ["message"]=>
      string(20) "name cannot be null."
      ["code"]=>
      string(3) "701"
    }
    [1]=>
    object(stdClass)#1936 (2) {
      ["message"]=>
      string(20) "type cannot be null."
      ["code"]=>
      string(3) "701"
    }
    [2]=>
    object(stdClass)#1937 (2) {
      ["message"]=>
      string(101) "Token type is either null, blank or invalid. Please refer to the documentation for valid token types."
      ["code"]=>
      string(3) "701"
    }
    [3]=>
    object(stdClass)#1938 (2) {
      ["message"]=>
      string(21) "value cannot be null."
      ["code"]=>
      string(3) "701"
    }
  }
  ["requestId"]=>
  string(16) "11d1#15b49284636"
}

共有1个答案

钮善
2023-03-14

您不必将令牌字段作为JSON对象发布:json_encode($body)
字段作为请求参数或常规形式传递

此请求对我很有效:

POST https://123-FOO-456.mktorest.com/rest/asset/v1/folder/1039/tokens.json?value=TestTokenValue&folderType=Program&name=TestToken&type=text

在这种情况下,您也不必指定内容类型内容类型:x-www-form-urlencoded

我不是PHP开发人员,但是你可以在这里看看如何发布表单数据的例子——PHP curl,HTTP POST示例代码?

 类似资料:
  • 问题内容: 尝试为变量分配值时出现问题。当我尝试按以下顺序将日期作为元组或列表时,问题就会出现: 为什么要打apping? 我如何解决它? 令牌在Python中是什么意思? 问题答案: 在Python 3中,数字前导零是不允许的。例如: 等是不允许的,但应改为和。 但是,在Python 2中,前导零表示该数字是一个 八进制数 (以8为底),因此,或分别表示和,并且以八进制表示,但由于它不是有效的八

  • 我有一个关于网址中的“令牌”的问题( https://firebasestorage.googleapis.com/v0/b/someapplication.appspot.com/o/images/sample.png?alt=media 从文档中,它说它返回一个“长寿”的下载网址https://firebase.google.com/docs/reference/js/firebase.sto

  • 我在Laravel5.2中遇到AJAX POST请求问题。我正在AJAX请求中传递一个有效的CSRF令牌。 使用Laravel Collective HTML package form标记打开和关闭表单,该标记会自动添加一个带有CSRF标记的隐藏标记输入。呈现的HTML: 使用Fetch API和FormData执行AJAX请求: CSRF令牌和表单数据位于请求负载中: 请求有效负载和x-csrf

  • 这个问题以前被问过很多次,也被回答过很多次,但是我不知道我做错了什么。从Firebase控制台向整个应用程序发送通知可以正常工作,但如果我向单个令牌发送通知,则Firebase控制台会出现错误:"Firebase注册令牌无效。检查令牌格式” 我正在Iphone设备上测试该应用程序。 已在创建新密钥https://developer.apple.com/account/ios/authkey/ 下载

  • 我的应用程序使用Google refresh令牌(从Google获得access_token)。我在这里有两个问题: 我知道谷歌刷新令牌不会在6个月内过期(见这里的文档);假设我在1月1日下午5:00pm获得了一个刷新令牌,并且我的应用程序在1月1日下午5:30从Google请求了另一个刷新令牌,那么旧的刷新令牌是否仍然有效(显然旧的还没有过期)?--基本上,我询问新发出的refresh_toke

  • 我正在研究项目中使用的NoSQL技术,Azure Cosmos Mongo API已成为一种选择。作为Microsofts推荐的体系结构的一部分,有一个资源代理组件中间件,它保留CosmosDB主访问密钥的所有权,并且可以生成/分发资源令牌,以便更细粒度地访问消费客户端。 留档似乎没有提到Mongo API,但是我在任何地方都找不到有关它的信息,这种模式是否不适用于Cosmos Mongo API