web-dev-qa-db-ja.com

グーグルプラス共有とURLのパラメータ

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を書く方法は?

10
user1502291

現在、G +共有は、ターゲットURL用のurlと言語コード用のhlの2つのパラメーターのみをサポートしています。

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="..."/>
41
Sid

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
11
Chirag Shah
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);

このリンクを参照

1
Gunasekar

共有リンクは、ネイティブクライアントアプリケーション、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>
1
antelove

答えは非常に貧弱です。ログインには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>';
0
user6838991