gpt4 book ai didi

Twitter 分享 - 将 urlencode 参数 %2C 重定向到 %252C

转载 作者:行者123 更新时间:2023-12-05 04:18:47 25 4
gpt4 key购买 nike

我正在使用 Twitter 自定义共享按钮“构建您自己的推文按钮”(https://dev.twitter.com/docs/tweet-button)。文档说我必须使用查询参数来传递参数。

问题: 当我向 Twitter 传递一个 URL 编码字符串时,Twitter 对文本参数进行了错误的编码。逗号 (,) 在推文消息中显示为 %252C。其他字符也编码错误。

我使用 PHP url encode (http://php.net/manual/en/function.urlencode.php) 为调用准备字符串。

$text = urlencode("I just backed ". $project->getTitle().", an amazing new mobile app, on appbackr, where anyone can back mobile apps");

然后我建立推特链接:

'http://www.twitter.com/share?url='.urlencode($projectUrl).'&via='.$via.'&text='.$text.'&related='.$user->getTwitterProfileName()

最终的 twitter url 调用是:

http://www.twitter.com/share?url=http%3A%2F%2Flocalhost%2Fapp%2Fbig-top-ballet&via=appbackr&text=I+just+backed+Big+Top+Ballet%2C+an+amazing+new+mobile+app%2C+on+appbackr%2C+where+anyone+can+back+mobile+apps&related=philippberner

一旦页面在浏览器(Chrome 和 Firefox)中打开,twitter 就会将 URL 重定向到:

https://twitter.com/intent/tweet?related=philippberner&text=I+just+backed+Big+Top+Ballet%252C+an+amazing+new+mobile+app%252C+on+appbackr%252C+where+anyone+can+back+mobile+apps&url=http%253A%252F%252Flocalhost%252Fapp%252Fbig-top-ballet&via=appbackr

这会在推文框中显示以下消息:

I just backed Big Top Ballet%2C an amazing new mobile app%2C on appbackr%2C where anyone can back mobile apps via @appbackr

它将 Top+Ballet%2C+an+amazing 转换为 Top+Ballet%252C+an+amazing。当我在 Twitter URL 中手动将 %252C 更改为 %2C 时,逗号正确显示。

最佳答案

其实和url编码没有太大关系。

它实际上适用于 urlencode,rawurlencode,甚至没有 url 编码在打开新标签页时尝试以下 URL。

使用 urlEncode:http://twitter.com/share?url=http%3A%2F%2Fwww.appbackr.com%2Fapp%2Fglass-ceiling&via=appbackr&text=I+just+backed+Glass+Ceiling%2C+an+amazing+new+mobile+app%2C+on+appbackr%2C+where+anyone+can+back+mobile+apps&related=

使用 rawurlEncode:http://twitter.com/share?url=http%3A%2F%2Fwww.appbackr.com%2Fapp%2Fglass-ceiling&via=appbackr&text=I%20just%20backed%20Glass%20Ceiling%2C%20an%20amazing%20new%20mobile%20app%2C%20on%20appbackr%2C%20where%20anyone%20can%20back%20mobile%20apps&related=

没有 urlEncode:http://twitter.com/share?url=http%3A%2F%2Fwww.appbackr.com%2Fapp%2Fglass-ceiling&via=appbackr&text=I刚刚在 appbackr 上支持 Glass Ceiling,一个了不起的新移动应用程序,任何人都可以在其中支持移动应用程序及相关=

诀窍实际上在于使用 twitter.com 而不是 www.twitter.com。不知道为什么会有差异,而且它似乎没有在 Twitter 的文档或谷歌的搜索结果中的任何地方记录。虽然公平地说,Twitter's documentation确实指向 twitter.com 而不是 www.twitter.com。

与往常一样,始终对文本进行 urlencode 绝对是最佳实践,即使它在没有 url 编码的情况下也能正常工作。

关于Twitter 分享 - 将 urlencode 参数 %2C 重定向到 %252C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8727679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com