मैं ड्राइव एपीआई थोड़ा सा सीखने के लिए ड्राइव कमांडलाइन आवेदक के साथ खेल रहा हूं। मैं बस सोच रहा हूं कि क्या Google ड्राइव के साथ मेरे डेस्कटॉप एप्लिकेशन को प्रमाणित करना संभव है बिना उपयोगकर्ता को ब्राउजर से ऑथ कोड कॉपी/पेस्ट करने की आवश्यकता है? लेकिन बस ब्राउज़र से ऐप पर वापस एक टोकन पास किया है? मैं ड्रॉपबॉक्स एपीआई और Google दस्तावेज़ सूची एपीआई के साथ ऐसा करने में सक्षम हूं, लेकिन यह समझ नहीं सकता कि यह Google ड्राइव एपीआई के साथ कैसे काम कर रहा है।उपयोगकर्ता ड्राइव को कॉपी/पेस्ट करने के लिए उपयोगकर्ता को आवश्यकतानुसार Google ड्राइव को प्रमाणित कैसे करें?
धन्यवाद।
Google डिस्क API - DriveCommandLine नमूना एप्लिकेशन (थोड़ा संशोधित):
public class DriveCommandLine {
private static String CLIENT_ID = APPCONSTANTS.Google.CONSUMER_KEY;
private static String CLIENT_SECRET = APPCONSTANTS.Google.CONSUMER_SECRET;
private static String REDIRECT_URI = "urn:ietf:wg:oauth:2.0:oob";
public static void main(String[] args) throws IOException, URISyntaxException {
HttpTransport httpTransport = new NetHttpTransport();
JsonFactory jsonFactory = new JacksonFactory();
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
httpTransport, jsonFactory, CLIENT_ID, CLIENT_SECRET, Arrays.asList(DriveScopes.DRIVE))
.setAccessType("offline")
.setApprovalPrompt("force").build();
String url = flow.newAuthorizationUrl().setRedirectUri(REDIRECT_URI).build();
System.out.println("Enter authorization code:");
Desktop.getDesktop().browse(new URI(url));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String code = br.readLine();
GoogleTokenResponse response = flow.newTokenRequest(code).setRedirectUri(REDIRECT_URI).execute();
GoogleCredential credential = new GoogleCredential().setFromTokenResponse(response);
//Create a new authorized API client
Drive service = new Drive.Builder(httpTransport, jsonFactory, credential).build();
}
Google दस्तावेज़ सूची API:
public void authenticate(){
GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
oauthParameters.setOAuthConsumerKey(APPCONSTANTS.Google.CONSUMER_KEY);
OAuthSigner signer;
if (APPCONSTANTS.Google.USE_RSA_SIGNING) {
signer = new OAuthRsaSha1Signer(APPCONSTANTS.Google.CONSUMER_SECRET);
} else {
oauthParameters.setOAuthConsumerSecret(APPCONSTANTS.Google.CONSUMER_SECRET);
signer = new OAuthHmacSha1Signer();
}
GoogleOAuthHelper oauthHelper = new GoogleOAuthHelper(signer);
oauthParameters.setScope(APPCONSTANTS.Google.SCOPES);
oauthHelper.getUnauthorizedRequestToken(oauthParameters);
String requestUrl = oauthHelper.createUserAuthorizationUrl(oauthParameters);
Desktop desktop = Desktop.getDesktop();
URI url = new URI(requestUrl);
desktop.browse(url);
String token = oauthHelper.getAccessToken(oauthParameters);
}
इन विकल्पों में से प्रत्येक के लिए आप 'redirect_uri' मानों का उपयोग किस प्रकार करते हैं? क्या आप एक ही प्रवाह का उपयोग कर रहे हैं? –
मैंने ओपी में Google दस्तावेज़ सूची API के साथ प्रमाणित करने के लिए अपना कोड जोड़ा। – PseudoPsyche