Java 在Google Plus上获取用户的帖子
我在google plus上获取用户帖子时遇到问题。我只有这个用户的访问令牌和刷新令牌(不是ID!),我怎么能从这个用户的google plus获得帖子呢?我搜索了很多,但没有一个符合我的情况。当用户在前端提供他的google plus Id时,访问令牌和刷新令牌被生成并存储在数据库中,在后端,我将使用这些令牌检索该用户的帖子。 我使用这个库是因为它看起来很简单,我不想为了得到这篇文章而使用这么复杂的库,非常感谢你们 这是我的密码Java 在Google Plus上获取用户的帖子,java,google-plus,Java,Google Plus,我在google plus上获取用户帖子时遇到问题。我只有这个用户的访问令牌和刷新令牌(不是ID!),我怎么能从这个用户的google plus获得帖子呢?我搜索了很多,但没有一个符合我的情况。当用户在前端提供他的google plus Id时,访问令牌和刷新令牌被生成并存储在数据库中,在后端,我将使用这些令牌检索该用户的帖子。 我使用这个库是因为它看起来很简单,我不想为了得到这篇文章而使用这么复杂的库,非常感谢你们 这是我的密码 import com.googlecode.google
import com.googlecode.googleplus.GooglePlusFactory;
import com.googlecode.googleplus.Plus;
import com.googlecode.googleplus.model.activity.ActivityCollection;
import com.googlecode.googleplus.model.activity.ActivityFeed;
public void getInfo(String accessToken, String refreshToken) {
GooglePlusFactory factory = new GooglePlusFactory(clientId, clientSecret);
Plus plus = factory.getApi(accessToken, refreshToken,null);
if (plus != null) {
ActivityFeed af = plus.getActivityOperations().list("me",ActivityCollection.PUBLIC);
String firstpost = af.getItems().get(0).getObject().getContent();
}
,调用此方法时出现403错误,错误输出为:
403 Forbidden
{
"code" : 403,
"errors" : [ {
"domain" : "usageLimits",
"message" : "Daily Limit Exceeded. Please sign up",
"reason" : "dailyLimitExceededUnreg",
"extendedHelp" : "https://code.google.com/apis/console"
} ],
"message" : "Daily Limit Exceeded. Please sign up"
}
事实上,我认为原因并不是因为超出了每日限制,因为我在第一次运行时收到了这条消息,我还打开了谷歌api控制台上的谷歌+api,谷歌+域api。我想错误来自于使用“list”方法中的“me”来检索帖子。我仍然不知道如何解决这个问题
更新了#1#
我对我的代码做了很多更改,所以这正是我所坚持的,我已经得到了一个新的accessToken,并且(当它还没有过期时),我运行下面的代码:
GoogleCredential credential = new GoogleCredential.Builder()
.setJsonFactory(JSON_FACTORY)
.setTransport(TRANSPORT)
.setClientSecrets(CLIENT_ID, CLIENT_SECRET).build().setAccessToken(newAccessToken);
// Create a new authorized API client.
Plus service = new Plus.Builder(TRANSPORT, JSON_FACTORY, credential)
.setApplicationName(APPLICATION_NAME)
.build();
// Get a list of people that this user has shared with this app.
ActivityFeed feed = service.activities().list("me", "public").execute()
然后我得到了这个错误:
com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
"code" : 403,
"errors" : [ {
"domain" : "global",
"message" : "Insufficient Permission",
"reason" : "insufficientPermissions"
} ],
"message" : "Insufficient Permission"
}
使用“me”作为列表调用的ID应该可以正常工作,并且您的代码通常看起来是正确的
错误消息表明您的客户端未注册。我将检查以确保以下各项:
确保你已经为你的项目创建了一个客户ID和密码(不要在这里发布!),并且你正在将它们正确地传递给GooglePlusFactory
确保此项目已打开Google+API
确保您为用户提供的访问令牌对应于他们对同一项目的身份验证我解决了这个问题,除了一件事之外一切都很好,那就是访问令牌和刷新令牌是由一些作用域创建的,而不是作用域加上.me,这就是为什么我不能使用这个刷新令牌请求一个新的访问令牌,然后我得到了权限不足错误403。因此,当我使用适当的范围获得新的访问和刷新令牌时,我可以使用关键字“me”进行查询。希望你们不要像我一样陷入困境,我花了将近2天的时间才弄明白我有客户ID和秘密,即“web应用程序的客户ID”,我还打开了Google+Api。因此,我认为问题不在于这些方面。“确保您为用户提供的访问令牌对应于他们对同一项目的身份验证”您能告诉我更多细节吗,前端的家伙获得访问令牌和刷新令牌,然后他将其传递给我,然后我使用此令牌获得帖子。他也给了我客户ID和秘密。也许这个项目是不同的?你这么认为吗?它已经解决了,请看我下面的帖子