建立亚马逊联盟 Link Swift
Build Amazon Affiliate Link Swift
我希望能够建立一个 Amazon-Affiliate link,当给出一个“正常”的 Amazon 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
例如:
如您所见,它不起作用...
我在这里错过了什么?我怎样才能建立会员 links?
看起来你正在测试的初始 link 可能很糟糕——换句话说,当我删除你的愿望清单标签并尝试使用基本的亚马逊 link 时,它仍然失败.
但是,对于有效的亚马逊产品 link,它似乎有效。这是我在 Playground 中所做的:
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
的结果,这是一个有效的 Amazon link。
我希望能够建立一个 Amazon-Affiliate link,当给出一个“正常”的 Amazon 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
例如:
如您所见,它不起作用...
我在这里错过了什么?我怎样才能建立会员 links?
看起来你正在测试的初始 link 可能很糟糕——换句话说,当我删除你的愿望清单标签并尝试使用基本的亚马逊 link 时,它仍然失败.
但是,对于有效的亚马逊产品 link,它似乎有效。这是我在 Playground 中所做的:
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
的结果,这是一个有效的 Amazon link。