Google に対してプログラムで認証するにはどうすればよいですか? ClientLogin ( https://developers.google.com/accounts/docs/AuthForInstalledApps ) が廃止されたので、OAuth2 を使用して Google に対してプログラムによる認証を実行するにはどうすればよいでしょうか?
ClientLogin を使用すると、 https://www.google.com/accounts/ClientLogin に電子メールとパスワードのパラメーターを指定して投稿を実行し、認証トークンを取得できます。
OAuth2では解決策が見つかりません!
#私のアプリは Java バックグラウンド プロセスです。次のリンクを見ました:developers.google.com/accounts/docs/OAuth2InstalledApp#refresh、更新されたトークンを使用して新しいアクセストークンを取得する方法。
問題は、新しい有効なアクセス トークンを取得したときに、Analytics オブジェクトをインスタンス化して (たとえば) クエリを実行する方法に関する Java の例が見つからないことです。
これは、「execute()」を呼び出すときに 401 無効な資格情報を返す私のコードです。
public class Test {
static final String client_id = "MY_CLIENT_ID";
static final String client_secret = "MY_SECRET";
static final String appName = "MY_APP";
private static final HttpTransport HTTP_TRANSPORT = new NetHttpTransport();
private static final JsonFactory JSON_FACTORY = new JacksonFactory();
static String access_token = "xxxx";
static String refreshToken = "yyyyy";
public static void main (String args[]){
try {
GoogleCredential credential =
new GoogleCredential.Builder()
.setTransport(HTTP_TRANSPORT)
.setJsonFactory(JSON_FACTORY)
.setClientSecrets(client_id, client_secret).build();
credential.setAccessToken(access_token);
credential.setRefreshToken(refreshToken);
//GoogleCredential
Analytics analytics = Analytics.builder(HTTP_TRANSPORT, JSON_FACTORY)
.setApplicationName(appName)
.setHttpRequestInitializer(credential)
.build();
Accounts accounts = analytics.management().accounts().list().execute();
} catch (Exception e) {
e.printStackTrace();
}
}
何が問題ですか?