首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Coldfusion上使用Trustpilot API发起Trustpilot邀请

在Coldfusion上使用Trustpilot API发起Trustpilot邀请
EN

Stack Overflow用户
提问于 2020-09-02 16:42:28
回答 1查看 153关注 0票数 0

我正在尝试编写一个web应用程序来发送自动的Trustpilot邀请,但是,当尝试在第二个CFHTTP中提交数据以处理该邀请时,CFHTTPPARAM中的每个"type“选项都会返回一个"Unsupported media type”错误:

代码语言:javascript
复制
<cfset apiKey = "XXXXXXX">
<cfset secret = "YYYYY">

<cfset encAccess = apiKey & ":" & secret>
<cfset encAccess = ToBase64(encAccess)>
    
<cfset myurl = "https://api.trustpilot.com/v1/oauth/oauth-business-users-for-applications/accesstoken">

<!---Generate Access Token Call--->
<cfhttp url="#myurl#" result="myauth" method="POST">
  <cfhttpparam type="HEADER" value="Basic[#encAccess#]" name="Authorization"></cfhttpparam>
  <cfhttpparam type="HEADER" value="application/x-www-form-urlencoded" name="Content-Type"></cfhttpparam>
  <cfhttpparam type="FORMFIELD" value="password" name="grant_type"></cfhttpparam>
  <cfhttpparam type="FORMFIELD" value="email@address.com" name="username"></cfhttpparam>
  <cfhttpparam type="FORMFIELD" value="Password" name="password"></cfhttpparam>              
</cfhttp>


<cfset result = DeserializeJSON(#myauth.fileContent#)>
<cfset token = #result.access_token#>   


<!--SET DATA TO SEND FOR INVITION--->
<cfset mydata = "{
'consumerEmail': 'consumer@email.com',
'replyTo': 'email@address.com',
'referenceNumber': '11223344',
'consumerName': 'Consumer Name',
'locale': 'en-US',
'senderEmail': 'noreply.invitations@trustpilotmail.com',
'serviceReviewInvitation': {
  'preferredSendTime': '2020-09-01T17:00:00', 
  'redirectUri': 'https://uk.trustpilot.com',
   ],
  'templateId': 'XXXYYYZZZ'
 },
'senderName': 'MyCompany'
}">

<cfset inviteurl = "https://invitations-api.trustpilot.com/v1/private/business-units/X1X1X1X1X1X1/email-invitations?token=" & token>

<cfhttp url="#inviteurl#" result="newresult" method="POST">
   <cfhttpparam value="#mydata#" name="request" type="FORMFIELD"></cfhttpparam>
</cfhttp>

<cfdump var="#newresult#">

作为参考,我正在尝试遵循这里列出的指导原则:https://developers.trustpilot.com/invitation-api#create-invitation(s)

这段代码后半部分的任何帮助都将是一个很大的帮助。

EN

回答 1

Stack Overflow用户

发布于 2020-09-03 18:33:02

我相信Trustpilot的API期望JSON数据作为请求主体,但您正试图将其填充到表单字段中。尝试:

代码语言:javascript
复制
<cfhttp url="#inviteurl#" result="newresult" method="POST">
    <cfhttpparam type="header" name="Content-Type" value="application/json" />
    <cfhttpparam type="body" value="#mydata#" />
</cfhttp>

请注意,以上代码假设mydata已经是一个字符串,如您的示例所示。如果它仍然是结构化数据,那么您将使用<cfhttpparam type="body" value="#serializeJson(mydata)#" />

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63701836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档