मैं अलार्म सिंक्रनाइज़िंग के लिए एक थर्ड पार्टी फिटबिट ऐप बनाने का इरादा रखता हूं।एंड्रॉइड क्रोम कस्टम टैब/फिटबिट वेब एपीआई रीडायरेक्ट नहीं होगा अगर ऐप पहले ही अधिकृत है। (OAuth2.0)
हालांकि, मुझे अपने ऐप के पंजीकरण के संबंध में कुछ कठिनाइयों का सामना करना पड़ा है, और अधिक स्पष्ट रूप से एक्सेस टोकन प्राप्त करने पर भी मेरा ग्राहक पहले से ही ऐप में पंजीकृत है। (परिदृश्य को ध्यान में रखते हुए कि उपयोगकर्ता अपना आवेदन पुनः स्थापित करता है)।
मैं Chrome कस्टम टैब का उपयोग कर रहा है (जैसा कि WebView FitBit द्वारा निषिद्ध है) पहुँच टोकन का अनुरोध करने के:
: एक आशय-फिल्टर के साथ परिभाषित कस्टम योजना के लिए पुनः निर्देशित करने परString url = "https://www.fitbit.com/oauth2/authorize?" +
"response_type=token" +
"&client_id=XXXXXX" +
"&scope=activity"+
"&redirect_uri=fitbittester://logincallback";
customTabsIntent.launchUrl(MainActivity.this, Uri.parse(url));
परीक्षण गतिविधि, लॉन्च की जानी चाहिए, जहां मैं दिया आशय से मेरी AccessToken मिल जाएगा:
public class TestActivity extends AppCompatActivity {
String string;
@Override
protected void onNewIntent(Intent intent) {
string = intent.getDataString();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
onNewIntent(getIntent());
Toast.makeText(TestActivity.this, string , Toast.LENGTH_LONG).show();
Log.e("TAG", string);
Log.e("TAG", string.substring(string.indexOf("&access_token")+14));
}
}
सबकुछ पहले रन पर ठीक काम करता है (तथ्य यह है कि क्लाइंट पहले से ही अधिकृत नहीं है), लेकिन उसके बाद यदि मैं फिर से अपना एक्सेस टोकन प्राप्त करना चाहता हूं (मुझे पता है कि मुझे इसे स्थानीय रूप से स्टोर करना चाहिए - साझाकरण सबसे अधिक संभावना है, लेकिन यह केवल परीक्षण उद्देश्यों के लिए है) क्रोम कस्टम टैब खुलेंगे और एक खाली पृष्ठ पर रहेंगे (जाहिर है यह ठीक से रीडायरेक्ट नहीं होगा)।
मैं FitBit वेब एपीआई को पढ़ लिया है और यह निम्नलिखित कहते हैं: अंतर्निहित अनुदान प्रवाह का उपयोग एक आवेदन पूर्व में जारी किए पहुँच टोकन से पहले प्राधिकरण पेज के लिए एक उपयोगकर्ता समाप्त हो गया है भेजता है, तो उपयोगकर्ता जब तक संकेत नहीं दिया जाएगा दायरा बढ़ गया है उपयोगकर्ता को एक्सेस टोकन के साथ तुरंत एप्लिकेशन पर रीडायरेक्ट कर दिया जाएगा।
तो मेरा सवाल यह है कि समस्या के बारे में मेरी सोच में कोई गलती है या
क्रोम कस्टम टैब गलती मुझे रोकना चाहिए?
अग्रिम में बहुत बहुत धन्यवाद।
मैं भी यही मुद्दा का सामना करना पड़ रहा हूँ, Fitbit से बहुत ही निराशाजनक समर्थन करते हैं। मैं कस्टम क्रोम टैब व्यवहार का अध्ययन किए बिना लिखे गए अच्छे दस्तावेज कहूंगा। – pyus13