我希望能够建立一个亚马逊附属的链接,当一个“正常的”亚马逊URL被给予。
我尝试使用这种结构:
http://www.amazon.com/dp/{ASIN}/?tag={trackingId}就像建议的那样here。
这就是我如何创建URL的方法
func getAmazonAffiliateLink() -> URL? {
if let regex = try? NSRegularExpression(pattern: "([\\w-]+/)?(dp|gp/product)/(\\w+/)?(\\w{10})"),
let match = regex.firstMatch(in: self, range: NSRange(self.startIndex..., in: self)),
let asinMatchRange = Range(match.range(at: 4), in: self) {
let asin = self[asinMatchRange]
let partnerId = "wishlists07-21"
let affiliateLink = "https://www.amazon.com/dp/\(asin)/?tag=\(partnerId)"
return URL(string: affiliateLink)
} else {
return nil
}
}但这给了我这个URL,例如:
正如你自己所看到的,这是行不通的.
我在这里错过了什么?我如何建立会员链接?
发布于 2021-01-22 01:01:43
看起来你正在测试的初始链接可能很糟糕--换句话说,当我删除您的wishlist标记并尝试基本的Amazon链接时,它仍然失败。
但是,有了一个有效的Amazon产品链接,它似乎可以工作。下面是我在游乐场做的事:
extension String {
func getAmazonAffiliateLink() -> URL? {
if let regex = try? NSRegularExpression(pattern: "([\\w-]+/)?(dp|gp/product)/(\\w+/)?(\\w{10})"),
let match = regex.firstMatch(in: self, range: NSRange(self.startIndex..., in: self)),
let asinMatchRange = Range(match.range(at: 4), in: self) {
let asin = self[asinMatchRange]
let partnerId = "wishlists07-21"
let affiliateLink = "https://www.amazon.com/dp/\(asin)/?tag=\(partnerId)"
return URL(string: affiliateLink)
} else {
return nil
}
}
}
"https://www.amazon.com/dp/B0863ZGP2R/ref=fs_a_ipadt2_us0".getAmazonAffiliateLink()这产生了https://www.amazon.com/dp/B0863ZGP2R/?tag=wishlists07-21的结果,这是一个正常工作的亚马逊链接。
https://stackoverflow.com/questions/65837717
复制相似问题