【发布时间】:2011-09-27 13:53:12
【问题描述】:
我想通过我的应用程序在 Google+ 墙上分享一些信息。 为此,我通过Google+ API。在该 API 中,他们提到了如何获取特定用户的访问令牌,但没有提到如何使用访问令牌在用户墙上发帖。
【问题讨论】:
标签: api google-plus
我想通过我的应用程序在 Google+ 墙上分享一些信息。 为此,我通过Google+ API。在该 API 中,他们提到了如何获取特定用户的访问令牌,但没有提到如何使用访问令牌在用户墙上发帖。
【问题讨论】:
标签: api google-plus
嗯,Google+ 没有“墙”,它有“信息流”。正确的术语可能会帮助您找到更好的搜索结果。无论哪种方式,除非您是 Google 合作伙伴,否则这个消息并不好:
API 目前仅限于只读访问。来自API website:
注意:Google+ API 目前提供对公众的只读访问权限 数据。所有 API 调用都需要 OAuth 2.0 token 或 API key。
因为它是只读的,您将无法通过 API 在任何地方更新或发布任何信息 - 您只能使用它来提取基本信息,例如个人资料和活动详情。
鉴于对 API 的访问可能会随着时间而改变,我会尽量让这个答案保持最新,提供与 写入 访问相关的新闻或更改的信息。
2015-04-28:Google+ Domains API 早在 2013 年 8 月就宣布了,但不知何故我错过了它与 Google+ 的相关性。
Google+ Domains API 使 Google Apps 客户和 ISV 可以利用增强的 Google+ API 来构建可以以多种方式使用的工具和服务。
不,它确实不提供对用户的 Google+ 个人资料的完整写入权限,但与 Google+ API v1 相比,与 Google+ API v1 相比,它确实为您提供了一些优势,至少在域内.这个主要面向移动应用开发者。
2015-01-21:我已经重新访问了此答案中链接的许多来源,并搜索了有关 API 更改的新闻,但 Google 一直保持沉默。
2014-03-12:Google+ 上关于写入权限(或缺少写入权限)的各种讨论线程:
2013-12-03:UPDATE 1 中的问题线程终于是responded to by a Google+ project member。 Developing with Google+ 社区页面上间歇性地进行了有关 Streams 写入访问的其他讨论。
2013-07-05:名为Eric Leroy 的开发人员构建了an "unofficial" JavaScript library,为Google+ API 提供读/写扩展。
2013-05-14:“社交媒体管理公司”可以通过尝试成为 Google+ Pages API 合作伙伴来获得额外的 API 访问权限。
以下是合作伙伴申请表的摘录:
Google+ 页面 API 允许社交媒体管理公司将 Google+ 页面管理功能添加到他们的工具中。可通过白名单访问此 API,并根据是否适合此 API 逐个公司授予合作伙伴访问权限。
解释缺少写 API 的其他文章:
2013-01-04:谷歌刚刚宣布了Google+ History。您可以使用它来编写“时刻”(默认情况下是私有的),但随后可以通过将它们直接共享到您的流和/或您的个人资料来公开。时刻类型之一是CommentActivity。
2012-10-08:现在有一个 duplicate bug post,只有几个 cmets,但您也可以在那里查看未来的更新。
2012-06-25:我遇到了issue tracker post 的 Google+ 写入权限。截至 2012 年 6 月 25 日,增强请求状态为“新”,优先级为“中”。在 cmets 中有一些感兴趣的链接。
【讨论】:
这可能会有所帮助:我制作了这个小书签,用于将我喜欢的页面的链接发布到我的信息流中:
javascript:location='https://plusone.google.com/_/+1/confirm?hl=en&url='+location
网址一目了然。如果您的帖子内容可以通过 URL 提供,那么您可以这样发布。唯一的困难是自动化谷歌的发布回调,但我不需要它,应该不会太难。
【讨论】:
如果你使用 wordpress,有一个插件可以让你自动发帖到 google plus WP Plugin Post to Google Plus 但是它不是免费的,便宜但不是免费的。 你可能可以调试它,因为它是 php,看看他们是如何做到的。
【讨论】:
您现在可以这样做了。请参阅下面的 google 开发者文档:
https://developers.google.com/+/domains/posts/creating
唯一需要注意的是,Google+ Domains API 只允许创建受限帖子,并且只允许将 cmets 添加到受限帖子。
【讨论】:
写入 Google+ 个人资料流仅限于域。
例如,如果您拥有一家名为 xyz co 的公司并拥有一个域 xyz.com。您可以使用 Google+ Domains API 写入流。虽然这将仅限于使用相同域并使用 Google G Suit 应用程序进行业务的人,并且不适用于普通 Google 的 gmail.com 电子邮件 ID。
Google+ Domains API 只允许创建受限帖子,并且只允许将 cmets 添加到受限帖子。
例如,Jon 和 Misha 作为 xyz co 的员工工作,并拥有关联的公司邮件 ID jon@xyz.com 和 misha@xyz.com,然后他们可以发布到 Google+ 中的关联域流。尽管这些帖子不会公开可见,并且仅限于属于同一域的成员可见。如果任何帖子必须公开,那么您必须手动完成该任务Ref。
如果您想在 Google+ 上发布一些企业或名人的信息,那么您必须寻找 Google+ Page API,它允许您在企业页面上发布信息。虽然他们在这里限制了合作伙伴申请表,需要获得批准才能访问 Pages API,这是非常严格且难以获得批准的。
Google+ 页面 API 允许社交媒体管理公司将 Google+ 页面管理功能添加到他们的工具中。可通过白名单访问此 API,并根据是否适合此 API 逐个公司授予合作伙伴访问权限。如果您是一家有兴趣访问此 API 的社交媒体管理公司,请填写下面的表格,并提供有关您公司平台的详细信息。请准确回答以下所有问题;任何歪曲您的工具的不准确信息都可能影响您公司对该 API 的访问。如果您的公司适合此 API 的功能,Google+ 团队将与此表单中提供的联系人联系并提供后续步骤。请不要向此表单提交多个条目。
在 Google+ 中发帖的其他方法是通过他们的分享按钮、交互式发帖和嵌入发帖到 Google+ Ref。
【讨论】:
//关注这个: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];
}
【讨论】: