10

我使用 Google+ 在我的页面上共享一些链接,当我尝试共享包含参数的 URL 时出现问题。例子:

http://google.com?n=somethink&link=p/1393007&i=images/icons/gplus-16.png

当您将此 URL 放入此页面的字段时:

https://developers.google.com/+/plugins/share/

...然后单击share按钮,您将看不到有关页面的名称、图片和描述等信息。但是,当您删除“png”之前的点时,Google 会显示有关该页面的数据。

当您'在 URL 中的任何位置写入符号时,也会发生同样的事情。我在 Google 帮助页面中找不到有关此错误的任何信息。当我使用这样的 URL 时,它可以工作:

http://google.com?n='&link=p/1393007&i=images/icons/gplus-16.png 

...但这不是非常优雅的解决方案。

如何编写干净的 URL?

4

5 回答 5

41

目前 G+ 分享只支持两个参数:url,用于目标 url,hl,用于语言代码。

https://plus.google.com/share?url=http://www.stackoverflow.com

或者,您可以将 OpenGraph 标记添加到页面顶部以指定相同的字段,如下所示:(尚未测试)

<meta property="og:title" content="..."/>
<meta property="og:image" content="..."/>
<meta property="og:description" content="..."/>
于 2012-09-09T13:41:46.527 回答
11

确保您对要通过 Google+ 共享链接在 Google+ 上共享的链接进行 URL 编码。

例如:如果你想分享链接http://example.com?a=b&c=d,首先 URL 对链接进行编码,如下所示:

http%3A%2F%2Fexample.com%3Fa%3Db%26c%3Dd

现在您可以通过分享链接在 Google+ 上分享链接:

https://plus.google.com/share?url=http%3A%2F%2Fexample.com%3Fa%3Db%26c%3Dd
于 2012-08-09T16:36:21.907 回答
1
function googleplusbtn(url) {
      sharelink = "https://plus.google.com/share?url="+url;
      newwindow=window.open(sharelink,'name','height=400,width=600');
      if (window.focus) {newwindow.focus()}                                                                                                                                
      return false;
    }   
   var url="www.google.com";
        googleplusbtn(url);

参考这个链接

于 2015-09-28T11:50:59.103 回答
1

共享链接适用于本机客户端应用程序、Flash 应用程序、高度隐私敏感的网站以及其他可能无法使用 +1 或共享按钮的用户。将以下标记添加到您的网站将包括一个简单的图标,该图标将为您的访问者弹出一个共享对话框。

    <a href="https://plus.google.com/share?url=https://stackoverflow.com/questions/11868291/google-plus-share-and-parameters-in-url" onclick="javascript:window.open(this.href,
          '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=600');return false;"><img
          src="https://www.gstatic.com/images/icons/gplus-64.png" alt="Share on Google+"/></a>

于 2017-07-02T13:19:28.150 回答
-1

答案很差。您应该使用 api 登录然后共享内容。

 require_once 'google-api-php-client-master/src/Google/Client.php';
$client = new Google_Client();
$client->setClientId('YOUR_CLIENT_ID');
$client->setClientSecret('YOUR_CLIENT_SECRET');
$client->setRedirectUri('YOUR_REDIRECT_URI');
$plus = new Google_PlusService($client);

$authUrl = $client->createAuthUrl();
$visibleActions = array(
  'http://schema.org/AddAction',
  'http://schema.org/ReviewAction');

$authUrl .= '&request_visible_actions=' .
    urlencode(implode(' ', $visibleActions));
print '<a href="' . $authUrl . '">Sign in with Google</a>';
于 2016-09-16T10:22:29.890 回答