在Google本地商家信息中,有一个网址可以将用户直接带到显示商家评价的弹出窗口。这是一个例子:
每个营业地点在网址中都有一个数字ID(在示例中为12682026813239828050),以及#lrd
参数中此数字的十六进制表示。
我拥有所有数字ID,需要通过确定如何形成十六进制段来生成这些URL。对于ID可以用16个十六进制字符表示的位置,这很容易。 URL段只是0x0:0x [hexstring]例如:
4134566830992571874 => 0x0:0x3960eea07d6cbe00
但是当数字太长时,它被分成两个十六进制字符串,我无法确定第一个字符串的来源。我拉了两个例子:
14384749138104818286 => 0x872b0445e4ee5e9b:0xc7a0e5209fd81a6e
15716027411522919173 => 0x872b00074aa36265:0xda1a8ba9e8201b05
SECOND十六进制字符串将转换为CLOSE的数字。在示例中:
c7a0e5209fd81a6e => 14384749138104818 (missing the last 3 digits)
da1a8ba9e8201b05 => 15716027411522918 (missing the last 3 digits and off by 1000)
以下是成功转换它们的网站:https://pleper.com/index.php?do=tools&sdo=google_review_link&url=4134566830992571874
有人可以帮我确定生成这些的方法吗?如果有另一个堆栈站点会更好,请指导我。谢谢!
答案 0 :(得分:2)
回答这个问题。以下是google lrd的当前细分,以留下5星评价:
#lrd=0x6b12ae37b47f5b37:0x8eaddfcd1b32ca52,3,5
据我所知,这是分解:
lrd =
[ 0x6b12ae37b47f5b37 ] = Unknown. What does this number represent?
:
[ 0x8eaddfcd1b32ca52 ] = google cid converted to hex
[ ,3 ] = The review type. 1 for reviews, 2 for write review, 3 also write review
[ ,5 ] = The review rating to pre-fill on the modal
如果您正在寻找创建评论链接的解决方案,这可能有所帮助。该问题的解决方案是使用google places api。这将允许您从api查询商家place_id并将其与评论链接一起使用谷歌允许您将其用作公共评论链接,如下例所示:
https://search.google.com/local/writereview?placeid= [place_id]
有关此链接的更多信息:Google review help
这仍然不允许您获取谷歌在谷歌搜索中创建的实际链接,或者附加评论评级以预先填写评论模式,如下例所示:
https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=google+syndey&*&lrd=0x6b12ae37b47f5b37:0x8eaddfcd1b32ca52,3,5
使用我们使用place_id创建的第一个链接并从响应头获取返回位置,可以使用curl请求解决此问题。
/* this is a php example curl */
$id = "ChIJN1t_tDeuEmsRUsoyG83frY4";
/* this will return the review url for a
google place account.
@param (string) $id = the google place_id
@return (string|false) the google review url
or false on error */
function getReviewUrl($id)
{
$url = "https://search.google.com/local/writereview?placeid=" . $id;
/* we need to setup headers to show a user agent
to stop google from redirecting to a 404 because
the request is coming from a curl */
$header = array(
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_URL, $url);
$out = curl_exec($ch);
$location = false;
preg_match('/^(?:Location:(.*))$/mi', $out, $matches);
if(isset($matches[1]))
{
$location = $matches[1]; // this is the full review url
}
curl_close($ch);
return $location;
}
echo getReviewUrl($id);
这将返回完整的Google评论网址,您可以轻松添加",5"结束它以预先填写评级为5星。
答案 1 :(得分:1)
我最终使用“将长整数转换为十六进制”功能使其工作: How to convert a huge integer to hex in php?
如果您使用0x0:0x[result of that function]
而不是使用Google生成的两部分网址,则该网址也可以使用。肯定还有另一个有效的网址,但我有一个同时工作的网址。感谢。
答案 2 :(得分:0)
简单搜索地点,在google搜索中,在右侧卡片中,找到“撰写评论”按钮,单击,然后复制上面的网址。
答案 3 :(得分:0)
@ 2020
Google最终简化了Review URL,因此我们不再需要将&lrd参数转换为十六进制。糟糕的骇客。
现在您所需要的只是位置和这些URL的place_id参数:
这是一个友好的URL,仅显示该位置的当前评论,但距离登录仅一步之遥。 https://search.google.com/local/reviews?placeid= {place_id}
这是直接写评论,但需要用户登录。 https://search.google.com/local/writereview?placeid= {place_id}