Google plus でユーザーの投稿を取得する際に問題が発生しました。このユーザーのアクセス トークンとリフレッシュ トークンしか持っていません (ID ではありません!)。このユーザーの Google プラスからの投稿を取得するにはどうすればよいでしょうか? ユーザーがフロントエンド側で自分の google plus Id を提供すると、アクセス トークンとリフレッシュ トークンが生成され、データベースに保存されます。バックエンド側では、これらのトークンを使用してこのユーザーの投稿を取得します。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"
}
実はその理由は1日の上限を超えたからではなく、初回起動時にそのメッセージが出たので、Google APIコンソールでgoogle+ api、google+ domain apiも回しています。エラーは、「リスト」メソッドで「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"
}