java - 获取用户在 Google Plus 上的职位

标签 java google-plus

我在获取用户在 google plus 上的帖子时遇到了问题。我只有这个用户的 access token 和 refresh token(不是 ID!),我怎么能从 google plus 得到这个用户的帖子?,我搜索了很多,但没有一个符合我的情况。当用户在前端提供他的 google plus Id 时,将生成访问 token 和刷新 token 并将其存储在数据库中,我在后端将使用这些 token 来检索该用户的帖子。 p/s: 我用这个库 https://code.google.com/p/google-plus-java-api/因为它看起来很简单,我不想为了获得帖子而使用如此复杂的库,非常感谢你

这是我的代码

    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" 
 } 

其实,我认为原因不是因为超过每日限制,因为我在第一次运行时收到该消息,我还在google api控制台上打开了google+ api,google+ domain api。我想错误来自于在“列表”方法中使用“我”来检索帖子。我仍然不知道如何解决这个问题

更新#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"
         }

最佳答案

使用“我”作为列表调用的 ID 应该可以正常工作,并且您的代码通常看起来是正确的。

错误消息表明您的客户端未注册。我会检查以确保以下内容:

确保您已经为您的项目创建了客户端 ID 和密码(并且不要将它们发布在这里!),并且您正在将它们正确传递给 GooglePlusFactory。

Authorized API Access

确保此项目已启用 Google+ API。

Google+ API

确保您为用户提供的访问 token 与他们对同一项目的身份验证相对应

关于java - 获取用户在 Google Plus 上的职位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18502293/

相关文章:

java - 如何在特定条件下隐藏 toast ?

android - Google Plus 登录帐户选择对话框问题

安卓 Google+ session

api - 用于读取 "plus one"计数的 Google+ API

java - gwt-google-apis 调用导致 "Cannot call method ' newHttpRequest' 未定义”

java - 根据 url 动态地将 .jsp 页面包含在另一个页面中

java - 批量更新异常,第 1 行 INSERT 语句附近使用了错误的语法

javascript - G+ 按钮的渲染回调

java - 使用 JDBC 模板并非所有变量绑定(bind)异常

java - 当我尝试在 Activity 的 onCreate() 方法中设置不同的内容 View 时,为什么会出现此 RuntimeException?