मैं एक ऐप पर काम कर रहा हूं जो एक oauth2 प्रमाणीकरण करता है जो काम करता था, लेकिन दुर्भाग्यवश अब और काम नहीं करता है। जहां तक मुझे पता है (लेकिन 100% निश्चित नहीं) कोड पर कुछ भी नहीं बदला है, इसलिए मुझे नहीं पता कि यह अब और क्यों काम नहीं करेगा।मेरे एंड्रॉइड ऐप में ओमेल काम क्यों नहीं करता है?
एप्लिकेशन वेब दृश्य बनाता है और हमारे सर्वर है, जो यह पुनर्निर्देश इस यूआरएल (अभी-अभी बदली ग्राहक आईडी और मेरे डोमेन) पर प्रमाणित करने के लिए गूगल से एक यूआरएल को लोड करता है:
https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=1234567890-XXXXXXX.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Fexample.com%3A5000%2Fchannel%2Fgmail%2Fcallback&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly&access_type=offline
जो तुरंत करने के लिए इसे पुनर्निर्देश:
https://accounts.google.com/ServiceLogin?passive=1209600&continue=https://accounts.google.com/o/oauth2/auth?access_type%3Doffline%26scope%3Dhttps://www.googleapis.com/auth/userinfo.email%2Bhttps://www.googleapis.com/auth/gmail.readonly%26response_type%3Dcode%26redirect_uri%3Dhttp://example.com:5000/channel/gmail/callback%26client_id%3D123456789-XXXXX.apps.googleusercontent.com%26hl%3Dnl%26from_login%3D1%26as%3D-2178738b5063e716<mpl=popup&oauth=1&sarp=1&scc=1
उसी प्रणाली का उपयोग हमारे आईओएस-ऐप से किया जाता है, जो एक आकर्षण की तरह काम करता है। तो हमारे सर्वर कार्यान्वयन के साथ कुछ भी गलत नहीं है। वेब पर रीडायरेक्ट किए गए वेबव्यू के बाद, यह स्वचालित रूप से किसी भी Google स्क्रीन को दिखाए बिना ऐप पर वापस आ जाता है। मैं वेबव्यू खोलने के लिए निम्नलिखित कोड का उपयोग कर रहा:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_browser_webview, container, false);
webView = (WebView) view.findViewById(R.id.web_view);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDisplayZoomControls(false);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setDomStorageEnabled(true);
webView.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Log.wtf("ERROR", description + " " + failingUrl);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.wtf("WEBVIEW URL", url);
if (url.contains(Api.API_ENTER_POINT)) {
// We never actually get here
getActivity().finish();
}
return false; //Allow WebView to load url
}
});
if (userId != null & userToken != null) {
Log.d("Gmail login", String.format(Api.API_GMAIL,userId,userToken));
webView.loadUrl(String.format(Api.API_GMAIL,userId,userToken));
}
return view;
}
और logcat उत्पादन इस प्रकार है:
02-29 18:56:39.028 27510-27510/com.example D/Gmail login: http://example.com:5000/api/v1/channel/gmail/on/1/CAAV8cDYVv9wBAKDfKu7zjInpUbSxBjSiouG8iFtP2EGKjb63AOAjirFf9SepSwe62PsNt0pflwZBKs8xvoH2Y7cnOsHTC33ikbwLFgwiqmK7AtHYzo2BTZAmiDGQvCKZBSdjIR5o5zvgqSZAFiGEU10PVTnXw2fRJzukQ0VEVoZC9VrO7el8hjeg2VoVBFhb9ppPCsHYkPKRWgThKJ76VJS4K3m2X7LwZD
02-29 18:56:39.092 27510-27510/com.example D/cr_Ime: [ImeAdapter.java:358] onViewFocusChanged: gainFocus [true]
02-29 18:56:39.119 27510-27510/com.example D/cr_Ime: [ImeAdapter.java:140] onCreateInputConnection returns null.
02-29 18:56:39.162 27510-27510/com.example I/Timeline: Timeline: Activity_idle id: [email protected] time:227199315
02-29 18:56:39.163 27510-27510/com.example A/WEBVIEW URL: https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=1234567890-XXXXXXXXXX.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Fexample.com%3A5000%2Fchannel%2Fgmail%2Fcallback&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly&access_type=offline
02-29 18:56:39.216 27510-27510/com.example A/WEBVIEW URL: https://accounts.google.com/ServiceLogin?passive=1209600&continue=https://accounts.google.com/o/oauth2/auth?access_type%3Doffline%26scope%3Dhttps://www.googleapis.com/auth/userinfo.email%2Bhttps://www.googleapis.com/auth/gmail.readonly%26response_type%3Dcode%26redirect_uri%3Dhttp://example.com:5000/channel/gmail/callback%26client_id%3D1234567890-XXXXXXXXXX.apps.googleusercontent.com%26hl%3Dnl%26from_login%3D1%26as%3D-231b0767e02a8ca9<mpl=popup&oauth=1&sarp=1&scc=1
02-29 18:56:39.283 27510-27510/com.example I/Timeline: Timeline: Activity_idle id: [email protected] time:227199436
02-29 18:56:39.287 27510-27510/com.example D/cr_Ime: [ImeAdapter.java:358] onViewFocusChanged: gainFocus [false]
02-29 18:56:39.287 27510-27510/com.example D/cr_Ime: [ImeAdapter.java:326] hideKeyboard
02-29 18:56:39.288 27510-27510/com.example D/cr_Ime: [InputMethodManagerWrapper.java:56] isActive: false
के बाद से इस लॉग वास्तव में एक त्रुटि नहीं देता, मैं अनिश्चित हूँ क्या गलत हो सकता है।
क्या किसी के पास कोई विचार है कि क्या गलत हो सकता है या मैं इसे कैसे डिबग कर सकता हूं? सभी सुझावों का स्वागत है!
शायद यह मदद करेगा: http://stackoverflow.com/questions/12854468/google-oauth-api-not-working-anymore-404-error – domax
बस एक जंगली अनुमान: ऐसा इसलिए हो सकता है क्योंकि आपने पहुंच की अनुमति दी है याद रखने के लिए और Google आपके डिवाइस पर पंजीकृत Google खाते के आधार पर सफलतापूर्वक प्रमाणित करता है? अपने डिवाइस पर Google खाता हटाने का प्रयास करें, अपने ऐप पर डेटा साफ़ करें और पुनः प्रयास करें। – Codebender
फेसबुक से http://ethbook.github.io/stetho/ से स्टीथो का उपयोग सर्वर और Google के सर्वर के साथ अपने ऐप के बीच संचार की निगरानी के लिए करें .. –