2013-08-22 21 views
5

Tôi đang thiết lập nút chia sẻ google + và muốn biết thời điểm ai đó đã chia sẻ liên kết để tôi có thể thực hiện hành động. Bạn có thể đăng ký gọi lại trên nút chia sẻ bằng cách sử dụng thuộc tính onendinteraction và tài liệu nêu rõ rằng điều này sẽ được gọi bất cứ khi nào hộp chia sẻ bị đóng và bất cứ khi nào chia sẻ hoàn tất.google + share và onendinteraction - không xác nhận

chức năng của tôi đang được gọi là khi cửa sổ được đóng lại, nhưng không phải khi liên kết được thực sự chia sẻ:

function redirectGooglePlus(jsonParam) { 
    alert(jsonParam.type); 
} 
<div class="g-plus" data-action="share" data-annotation="vertical-bubble" data-height="60" 
       data-href="http://mywebsite.com" data-onendinteraction="redirectGooglePlus"></div> 

chức năng My redirectGooglePlus chỉ bao giờ gọi khi hover loại, và không bao giờ confirm (đó là một trong đó là phải để biểu thị các phần đã hoàn thành.

có ai biết lý do tại sao chức năng không được gọi với confirm?

FYI tài liệu share google là anh re: https://developers.google.com/+/web/share/

+1

Có vẻ như đây là lỗi: https://code.google.com/p/google-plus-platform/issues/detail?id=396 –

+0

Và họ vẫn chưa sắp xếp lỗi này. Khá thảm hại từ một tập đoàn lớn như vậy – Rossco

Trả lời

1

Vì vậy, đây dường như là một lỗi với việc thực hiện hiện hành của nút chia sẻ google +:

https://code.google.com/p/google-plus-platform/issues/detail?id=396

The (gớm ghiếc) workaround Tôi đã sử dụng cho bây giờ là nhìn cho 2 sự kiện di chuột cho số onendinteraction. Nếu các sự kiện diễn ra nhanh chóng (ít hơn 1 giây), thì có khả năng họ đã chia sẻ mục đó.

0

Khá vào cuối ngày này để nó có thể không phù hợp nhưng theo Google Developer trang cho nền tảng web của họ, có vẻ như bạn có thể gõ vào hiện tại danh sách các hoạt động người dùng sử dụng một mã javascript tương tự như -

var request = gapi.client.plus.activities.list({ 
    'userId' : 'me', 
    'collection' : 'public' 
}); 

request.execute(function(resp) { 
    var numItems = resp.items.length; 
    for (var i = 0; i < numItems; i++) { 
    console.log('ID: ' + resp.items[i].id + ' Content: ' + 
     resp.items[i].object.content); 
    } 
}); 

các công cụ trực tuyến để tạo và kiểm tra điểm cuối truy vấn là có trên Developer Page

tạo và thêm một chuỗi truy vấn tùy chỉnh để kết thúc liên kết người dùng của bạn được chia sẻ, JS ON được trả về từ điểm cuối có thể được phân tích cú pháp để kiểm tra xem liên kết cụ thể đó đã được chia sẻ trên luồng hoạt động của người dùng hay chưa. Các JSON trả về trông như thế này -

{ 
"items": [ 
    { 
    "title": "", 
    "published": "2015-06-12T16:39:11.176Z", 
    "url": "https://plus.google.com/+UserID/posts/PostID", 
    "object": { 
    "content": "", 
    "attachments": [ 
    { 
     "objectType": "article", 
     "url": "http://www.example.com" 
    } 
    ] 
    } 
    } 
] 
} 

Nếu liên kết với các truy vấn tùy chỉnh là có trong phần đính kèm của một trong những mặt hàng trở lại, Voila! Nó được chia sẻ.

0

Một giải pháp khả thi cho điều này sẽ là những điều sau đây như một công việc xung quanh.

  1. Làm cho người dùng mở một cửa sổ mới, trong đó có CHỈ Bộ luật Nút Chia sẻ qua url để được chia sẻ
  2. Đặt một biến để 0 trên cửa sổ tải
  3. Trong chức năng redirectGooglePlus bạn cập nhật các biến tới 1 khi dữ liệu onendinteraction được gọi
  4. Kiểm tra cửa sổ cho chặt chẽ và xác minh các biến được thành lập

    function closeWin(){ 
    
    if(x==0){ 
        //not shared before leaving code; 
    }else{ 
        //shared before window closed; 
    } 
    }  
    body onbeforeunload="closeWin()"