使用Bitly-ampscript缩短URL时出现的问题

使用Bitly-ampscript缩短URL时出现的问题,url,bit.ly,ampscript,Url,Bit.ly,Ampscript,我有一个用例,我需要缩短我的Url并用短信发送它。我有一个HTML页面,在打电话时更新我客户的详细信息。它基本上更新了销售云中特定潜在客户的对象属性。当用户单击我们在SMS中提供的链接时,HTML页面将打开,该用户的信息将被验证(先前设置为未验证的属性现在设置为已验证) 问题 在我的例子中,生成的bitly链接本身会被命中(可能是当它被发送到bitly服务器以缩短链接时),即使用户没有单击该链接,用户的信息也会得到验证 这是我的代码: %%[ var @leadId, @shortenUrl,

我有一个用例,我需要缩短我的Url并用短信发送它。我有一个HTML页面,在打电话时更新我客户的详细信息。它基本上更新了销售云中特定潜在客户的对象属性。当用户单击我们在SMS中提供的链接时,HTML页面将打开,该用户的信息将被验证(先前设置为未验证的属性现在设置为已验证)

问题 在我的例子中,生成的bitly链接本身会被命中(可能是当它被发送到bitly服务器以缩短链接时),即使用户没有单击该链接,用户的信息也会得到验证

这是我的代码:

%%[
var @leadId, @shortenUrl, @bitlyUrl, @link
Set @contacts = RetrieveSalesforceObjects("Lead", "Id,FirstName,LastName", "Combined_Mobile__c", "=", 
6569698800)
if rowcount(@contacts) != 0 then
  Set @row = Row(@contacts, 1)
  Set @firstName = FIELD(@row, "FirstName")
  Set @lastName = FIELD(@row, "LastName")
  Set @leadId = FIELD(@row, "Id")
endif
Set @encodedId = Base64Encode(@leadId)

set @urlLink =Concat('<url>','?leadID=',@encodedId)
set @bitlyUrl = 'https://api-ssl.bitly.com/v3/shorten?access_token=b6a8bcb7b8299121a6588dc619a71f23d0cd1211&format=txt&longUrl='
set @verifyUrl = Concat(@bitlyUrl,@urlLink,"&format=txt")
]%%
%%[
var@leadId、@shortenUrl、@bitlyUrl、@link
设置@contacts=RetrieveSalesforceObjects(“Lead”、“Id”、“FirstName”、“LastName”、“Combined\u Mobile\u\u c”、“=”,
6569698800)
如果rowcount(@contacts)!=0,则
设置@row=row(@contacts,1)
设置@firstName=字段(@row,“firstName”)
设置@lastName=FIELD(@row,“lastName”)
设置@leadId=字段(@row,“Id”)
恩迪夫
设置@encodedId=Base64Encode(@leadId)
设置@urlink=Concat(“”,“?leadID=”,@encodedId)
设置@bitlyUrl=https://api-ssl.bitly.com/v3/shorten?access_token=b6a8bcb7b8299121a6588dc619a71f23d0cd1211&format=txt&longUrl='
设置@verifyUrl=Concat(@bitlyUrl、@urlink、&format=txt)
]%%
HTML页面包含以下代码:

%%[ 
set @encodedId = RequestParameter("leadID")
set @leadId = Base64Decode(@encodedId,'UTF-8', 1)
set @contacts= RetrieveSalesforceObjects("Lead", "Lead_Type__c,FirstName", "Id", "=",@leadId)
if rowcount(@contacts) != 0 then
Set @row = Row(@contacts, 1)
Set @firstName = FIELD(@row, "FirstName")
set @result = UpdateSingleSalesforceObject("Lead",@leadId,"Contact_Verified__c","Verified")
endif 
]%%

<!DOCTYPE html>
<html>
  <!--HTML header and body code-->
</html>
%%%[
set@encodedId=RequestParameter(“leadID”)
设置@leadId=base64解码(@encodedId,'UTF-8',1)
设置@contacts=RetrieveSalesforceObjects(“Lead”、“Lead\u Type\uu c、FirstName”、“Id”、“=”、@leadId)
如果rowcount(@contacts)!=0,则
设置@row=row(@contacts,1)
设置@firstName=字段(@row,“firstName”)
设置@result=UpdateSingleSalesforceObject(“Lead”、“leadId”、“联系人已验证”、“已验证”)
恩迪夫
]%%

有什么建议吗?

“即使用户没有点击该链接,用户的信息也会得到验证”-这就是为什么您不在一个GET请求中执行类似操作的原因,而是在登录到这样的URL时,您会向用户显示一个导致POST请求的按钮,只有这样,用户才会将其视为实际确认。@CBroe我已经编辑了我的问题。这是一个HTML页面。请同时参考登录页代码。你方对此有何建议?建议已包含在先前的评论中;到底什么还不清楚?我不想做两步授权。我不想给用户一个按钮。用户在短信中获得一个链接,当他点击该链接时,他的信息才应该得到验证,而不是在此之前。您对此@CBroe有一个解决方案吗?那么唯一的解决方案是您不使用任何可能预先请求您的URL的服务-因此,没有缩短服务,只需将您的服务的直接URL发送给用户。但即使这样也很有可能失败,因为Facebook本身肯定会在你发送该URL后立即发出请求,为收件人创建“预览”。。。因此,再次失败。您可以整天“想要”一个不同的解决方案,但这不会改变Sh.t工作的当前状态。