如何在google+流上发布交互式帖子?
我正试图从asp.net web应用程序在谷歌流上发布一些自定义数据。
这是我使用的代码。
这是。aspx页面:告诉你的朋友
这是我使用的脚本:
var moment = {
"name": "sample",
"Description": "Hi sample post",
"Thumbnail": "logo",
"image": "http://prayati.com/Images/PrayatiLogo.jpg"
};
gapi.auth.init(signinCallback);
function signinCallback(authResult) {
if (authResult['access_token']) {
gapi.interactivepost.render('inter', options);
//gapi.interactivepost.render(moment, authResult['access_token'])
gapi.interactivepost.go(moment)
document.getElementById('myBtn').setAttribute('style', 'display: none');
} else if (authResult['error']) {
alert(authResult['error']);
}
}
var options = {
contenturl: 'https://plus.google.com/pages/',
contentdeeplinkid: '/pages',
clientid: '263087742134.apps.googleusercontent.com',
cookiepolicy: 'single_host_origin',
prefilltext: 'Create your Google+ Page too!',
calltoactionlabel: 'SHARE',
calltoactionurl: 'http://plus.google.com/pages/create',
calltoactiondeeplinkid: '/pages/create'
};
第一个可能也是最重要的问题是您的data-calltoactionurl
和data-contenturl
之间的域不匹配。这些必须是相同的域,参见data-contenturl
文档。
我相信这是你的主要问题,你的例子中还有其他问题:
你似乎混淆了两个不同的功能:应用程序活动(又名朋友圈)和互动帖子。此外,看起来您正在尝试进行身份验证,交互式发布按钮也是一个登录按钮,请注意它的data-callback
参数。您不需要单独调用gapi.auth.init()
最简单的方法是使用HTML按钮并删除对gapi.interactivepost.*的调用,除非你有一个需要插入按钮的动态应用程序。
你没有发布你的JavaScript API包含的代码,确保它正在加载API脚本作为https://apis.google.com/js/client:plusone.js
。
下面是一个正确且简化的按钮:
<button class="g-interactivepost"
data-clientid="xxxxxxxxxx.apps.googleusercontent.com"
data-contenturl="http://localhost:52022/Jaswanth"
data-cookiepolicy="single_host_origin"
data-calltoactionlabel="INVITE"
data-calltoactionurl="http://localhost:52022/create"
data-prefilltext="Best site EVER!"
data-callback="signinCallback"
data-requestvisibleactions="http://schemas.google.com/AddActivity"
data-scope="https://www.googleapis.com/auth/plus.login">
Tell your friends
</button>