如何在Google+墙上发帖
我想从我的应用程序中分享Google+墙上的一些信息。 为此,我浏览了Google+ API 。 在这个API中,他们提到如何获得特定用户的访问令牌,但是他们没有提到如何使用访问令牌在用户墙上发布信息。
那么,Google+没有“墙”,它有“stream”。 正确的术语可能会帮助您find更好的search结果。 无论哪种方式,除非你是Google合作伙伴,否则这个消息并不好:
该API目前仅限于只读访问。 从API网站 :
注意:Google+ API目前提供对公开数据的只读访问权限。 所有API调用都需要OAuth 2.0令牌或API密钥 。
因为它是只读的,所以您将无法通过API更新或发布任何信息 – 您只能使用它来获取configuration文件和活动详细信息等基本信息。
考虑到对API的访问可能会随着时间的推移而改变,我会尽力让这个答案保持最新,并提供有关新闻或与写权限有关的更改的信息。
新闻与更新
2015-04-28
: Google+ Domains API早在2013年8月宣布,但不知何故,我错过了与Google+的相关性。
Google+ Domains API允许Google Apps客户和ISV利用增强的Google+ API来构build可以多种方式使用的工具和服务。
不,它不提供对用户的Google+个人资料的完全写入访问权限,但是它至less在一个域内为您提供了比Google+ API v1更小的优势。 这主要是针对移动应用程序开发人员。
2015-01-21
:我已经回顾了这个答案中的很多来源,并search了关于API变化的消息,但是Google一直很安静。
2014-03-12
:Google+上关于写入权限的各种讨论主题(或缺乏):
- Jeff Dwyer的 讨论主题
- Thor Mitchell (更新6中提到的Google+团队成员) 对该主题进行了深入的讨论,
2013-12-03
:来自UPDATE 1的问题线索最终得到Google+项目成员的回应 。 关于Streams的写入权限的其他讨论正在“ 使用Google+社区进行开发”页面上间歇性地进行。
2013-07-05
:名为Eric Leroy的开发人员已经构build了一个“非官方”JavaScript库 ,提供对Google+ API的读/写扩展。
- 通过Google+ XHR Hack = w +(Add / Post)
2013-05-14
:“社交媒体pipe理公司”可以通过尝试成为Google+信息页API合作伙伴获得更多的API访问权限。
- Google+信息页API合作伙伴申请表
- 更多第三方工具来帮助pipe理你的Google+信息页 – 来自Eduardo Thuler的一则消息
- 谷歌最初公布的第三方pipe理工具
以下是合作伙伴申请表的摘录:
Google+信息页API允许社交媒体pipe理公司将Google+信息页pipe理function添加到他们的工具中。 通过白名单访问此API,并根据与此API相符的公司基础授予合作伙伴访问权限。
其他文章解释了一个写API的缺乏:
2013-01-04
:Google刚刚发布了Google+历史logging 。 你可以使用它来写“时刻”(默认情况下是私人的),然后可以通过直接分享给你的stream和/或你的个人资料来公开。 其中一种types是CommentActivity
。
2012-10-08
:现在有一个重复的错误post只有几个意见,但你也可以在那里查看未来的更新。
2012-06-25
:我遇到了Google+写访问的问题跟踪器post 。 截至2012年6月25 日 ,增强请求状态为“新build”,优先级为“中”。评论中有一些感兴趣的链接。
这可能会有所帮助:我已经使这个小书签链接到我喜欢我的stream的页面:
javascript:location='https://plusone.google.com/_/+1/confirm?hl=en&url='+location
该URL是不言自明的。 如果你的post内容可以通过URL提供,那么你可以这样发布。 唯一的困难是自动从谷歌发布callback,但我不需要它,不应该太难。
你现在可以做到这一点。 请参阅下面的Google的开发者文档:
https://developers.google.com/+/domains/posts/creating
唯一需要注意的是,Google+ Domains API只允许创build受限制的post,并且只允许将评论添加到受限制的post中。
如果你使用wordpress,有一个插件,允许你自动发布到谷歌加WP插件发布到谷歌加,但它不是免费的,便宜,但不是免费的。 你可以debugging它,因为它是PHP,看看他们是如何做到这一点。
写入Google+个人资料数据stream仅限于域名。
例如,如果您拥有一家名为xyz co的公司,并且拥有一个域xyz.com。 您可以使用Google+ Domains API写入stream。 虽然这将被限制为使用相同的域名,并使用谷歌G套装应用程序业务的人,并不适用于正常的谷歌的gmail.com电子邮件ID。
Google+ Domains API只允许创build受限制的post,并且只允许将评论添加到受限制的post中。
例如,Jon和Misha在xyz co工作,并且拥有关联公司邮件编号jon@xyz.com和misha@xyz.com,然后他们可以在Google+中发布相关域名stream。 虽然这些post不会公开显示,并且只能被属于同一个域名的会员看到。 如果任何职位必须公布,那么你必须手动完成这项任务。
如果您希望在Google+上发布某些商家或名人的信息,那么您必须查找Google+信息页API ,以便您在商家页面上撰写信息。 虽然他们在这里限制了合作伙伴的申请表格,需要批准您访问Pages API,这是非常严格和难以获得批准。
Google+信息页API允许社交媒体pipe理公司将Google+信息页pipe理function添加到他们的工具中。 通过白名单访问此API,并根据与此API相符的公司基础授予合作伙伴访问权限。 如果您是有兴趣访问此API的社交媒体pipe理公司,请填写下面的表格,详细介绍贵公司的平台。 请准确回答以下所有问题; 任何歪曲您工具的不准确信息都会影响您公司对此API的访问。 如果您的公司适合使用此API的function,那么Google+小组将通过接下来的步骤与此表单中提供的联系人联系。 请不要提交多个条目到这个表格。
在Google+上发布的其他方法是通过他们的分享button,交互式发布和embedded式发布到Google+ 参考 。
//请按照以下步骤操作: https : //developers.google.com/+/mobile/ios/share/
-(void)shareGoogle{ [signIn authenticate]; [signIn trySilentAuthentication]; } -(void)refreshInterfaceBasedOnSignIn { if ([[GPPSignIn sharedInstance] authentication]) { // The user is signed in. NSLog(@"%@", [[GPPSignIn sharedInstance] authentication]); [self didTapShare:nil]; } else { self.signInButton.hidden = NO; // Perform other actions here } } - (IBAction) didTapShare: (id)sender { [GPPShare sharedInstance].delegate = self; id<GPPNativeShareBuilder> shareBuilder = [[GPPShare sharedInstance] nativeShareDialog]; // Set any prefilled text that you might want to suggest [shareBuilder setPrefillText:@"message"]; [shareBuilder attachImage:[UIImage imageWithData:imageData]]; [shareBuilder open]; likeShareBtn.userInteractionEnabled = FALSE; } - (void)finishedSharingWithError:(NSError *)error { NSString *text; if (!error) { text = @"Success"; } else if (error.code == kGPPErrorShareboxCanceled) { text = @"Canceled"; } else { text = [NSString stringWithFormat:@"Error (%@)", [error localizedDescription]]; } NSLog(@"Status: %@", text); } -(void)presentSignInViewController:(UIViewController *)viewController { // This is an example of how you can implement it if your app is navigation-based. [[self navigationController] pushViewController:viewController animated:YES]; }