iOS-এর জন্য App Flip

OAuth 2.0 প্রয়োগ করার পরে, আপনি চাইলে OAuth-ভিত্তিক App Flip কনফিগার করতে পারেন, যা আপনার iOS ব্যবহারকারীদের তাদের Google অ্যাকাউন্টের সাথে আপনার যাচাইকরণ সিস্টেমে তাদের অ্যাকাউন্ট আরও দ্রুত লিঙ্ক করতে দেয়। iOS-এ আপনার Cloud-to-cloud ইন্টিগ্রেশনের জন্য কীভাবে App Flip ডিজাইন ও প্রয়োগ করবেন তা নিম্নলিখিত বিভাগে বর্ণনা করা হয়েছে।

নকশা নির্দেশিকা

এই বিভাগটি অ্যাপ ফ্লিপ অ্যাকাউন্ট লিঙ্কিং সম্মতি স্ক্রিনের জন্য ডিজাইনের প্রয়োজনীয়তা এবং সুপারিশগুলি বর্ণনা করে। Google আপনার অ্যাপে কল করার পরে, আপনার অ্যাপ ব্যবহারকারীকে সম্মতি স্ক্রিনটি প্রদর্শন করে।

আবশ্যকতা

  1. আপনার অবশ্যই একটি Google অনুমোদন বিবৃতি থাকতে হবে যেমন "একবার লিঙ্ক হয়ে গেলে, Google আপনার ডিভাইসগুলি নিয়ন্ত্রণ করার অনুমতি পাবে।"
  2. আপনাকে অবশ্যই জানাতে হবে যে ব্যবহারকারীর অ্যাকাউন্টটি গুগলের সাথে লিঙ্ক করা হচ্ছে, গুগল হোম বা গুগল অ্যাসিস্ট্যান্টের মতো কোনও নির্দিষ্ট গুগল পণ্যের সাথে নয় ।
  3. আপনার সম্মতি স্ক্রিনে স্পষ্টভাবে একটি কল-টু-অ্যাকশন উল্লেখ করতে হবে এবং লিঙ্কিং অ্যাকশনের জন্য "সম্মত হন এবং লিঙ্ক করুন" শব্দটি ব্যবহার করতে হবে। এর কারণ হল ব্যবহারকারীদের বুঝতে হবে যে তাদের অ্যাকাউন্ট লিঙ্ক করার জন্য Google-এর সাথে কোন ডেটা শেয়ার করতে হবে।
  4. ব্যবহারকারীরা যদি লিঙ্ক না করতে চান, তাহলে আপনাকে তাদের ফিরে যেতে, অস্বীকার করতে বা বাতিল করতে একটি উপায় প্রদান করতে হবে। বাতিল করার জন্য "বাতিল করুন" শব্দটি ব্যবহার করুন।
  5. আপনাকে এই ওয়ার্কফ্লোটি বাস্তবায়ন করতে হবে: "সম্মত হন এবং লিঙ্ক করুন" এ ক্লিক করার পর, আপনাকে লিঙ্কিং সফলতা দেখাতে হবে এবং ব্যবহারকারীকে স্বয়ংক্রিয়ভাবে Google Home অ্যাপে ফিরিয়ে আনতে হবে। ব্যবহারকারী এখন আপনার অ্যাকশন সহ Google Home অ্যাপে লিঙ্ক করা ডিভাইসটি দেখতে পাবেন। "বাতিল করুন" এ ক্লিক করার পর আপনার ব্যবহারকারীকে Google Home অ্যাপে ফিরিয়ে আনতে হবে।

সুপারিশ

আমরা আপনাকে নিম্নলিখিতগুলি করার পরামর্শ দিচ্ছি:

  1. Google-এর গোপনীয়তা নীতি প্রদর্শন করুন। সম্মতি স্ক্রিনে Google-এর গোপনীয়তা নীতির একটি লিঙ্ক অন্তর্ভুক্ত করুন।

  2. শেয়ার করার জন্য ডেটা। ব্যবহারকারীকে স্পষ্ট এবং সংক্ষিপ্ত ভাষা ব্যবহার করে বলুন যে গুগল তাদের কোন ডেটা চায় এবং কেন।

  3. লিঙ্কমুক্ত করার ক্ষমতা। ব্যবহারকারীদের লিঙ্কমুক্ত করার জন্য একটি ব্যবস্থা প্রদান করুন, যেমন আপনার প্ল্যাটফর্মে তাদের অ্যাকাউন্ট সেটিংসের একটি URL। বিকল্পভাবে, আপনি Google অ্যাকাউন্টের একটি লিঙ্ক অন্তর্ভুক্ত করতে পারেন যেখানে ব্যবহারকারীরা তাদের লিঙ্ক করা অ্যাকাউন্ট পরিচালনা করতে পারবেন।

  4. ব্যবহারকারীর অ্যাকাউন্ট পরিবর্তন করার ক্ষমতা। ব্যবহারকারীদের তাদের অ্যাকাউন্ট(গুলি) পরিবর্তন করার জন্য একটি পদ্ধতির পরামর্শ দিন। এটি বিশেষ করে উপকারী যদি ব্যবহারকারীদের একাধিক অ্যাকাউন্ট থাকে।

    • যদি কোনও ব্যবহারকারীকে অ্যাকাউন্ট পরিবর্তন করার জন্য সম্মতি স্ক্রিনটি বন্ধ করতে হয়, তাহলে Google-এ একটি পুনরুদ্ধারযোগ্য ত্রুটি পাঠান যাতে ব্যবহারকারী OAuth লিঙ্কিং এবং অন্তর্নিহিত প্রবাহের মাধ্যমে পছন্দসই অ্যাকাউন্টে সাইন ইন করতে পারেন।
  5. আপনার লোগো অন্তর্ভুক্ত করুন। সম্মতি স্ক্রিনে আপনার কোম্পানির লোগো প্রদর্শন করুন। আপনার লোগো স্থাপনের জন্য আপনার স্টাইল নির্দেশিকা ব্যবহার করুন। আপনি যদি Google এর লোগোও প্রদর্শন করতে চান, তাহলে লোগো এবং ট্রেডমার্ক দেখুন।

এই চিত্রটিতে একটি উদাহরণ সম্মতি স্ক্রিন দেখানো হয়েছে যেখানে ব্যবহারকারীর সম্মতি স্ক্রিন ডিজাইন করার সময় যেসব ব্যক্তিগত প্রয়োজনীয়তা এবং সুপারিশ অনুসরণ করতে হবে তার প্রতি আহ্বান জানানো হয়েছে।
চিত্র ১: অ্যাকাউন্ট লিঙ্কিং সম্মতি স্ক্রিন ডিজাইন নির্দেশিকা।

OAuth-ভিত্তিক App Flip-এর জন্য সেট-আপ করুন

নিম্নলিখিত বিভাগে OAuth-ভিত্তিক অ্যাপ ফ্লিপের জন্য পূর্বশর্ত এবং Google Home Developer Console-এ আপনার অ্যাপ ফ্লিপ প্রোজেক্ট কীভাবে কনফিগার করবেন তা বর্ণনা করা হয়েছে।

ক্লাউড-টু-ক্লাউড ইন্টিগ্রেশন তৈরি করা এবং OAuth 2.0 সার্ভার সেট-আপ করা

App Flip কনফিগার করার আগে, আপনাকে নিম্নলিখিত কাজগুলি করতে হবে:

Developer Console-এ অ্যাপ ফ্লিপ কনফিগার করা

Developer Console-এ কীভাবে App Flip কনফিগার করবেন তা নিম্নলিখিত বিভাগে বর্ণনা করা হয়েছে।

  1. OAuth ক্লায়েন্ট তথ্য-এর অধীনে সব ফিল্ড পূরণ করুন। (App Flip কাজ না করলে, ফলব্যাক হিসেবে সাধারণ OAuth ব্যবহার করা হয়।)
  2. অ্যাকাউন্ট লিঙ্ক করার জন্য আপনার অ্যাপ ব্যবহার করুন(ঐচ্ছিক) বিকল্পের মধ্যে, iOS-এর জন্য চালু করুন বিকল্পে টিকচিহ্ন দিন।
  3. ইউনিভার্সাল লিঙ্ক ফিল্ড পূরণ করুন। ইউনিভার্সাল লিঙ্ক সম্পর্কে আরও তথ্যের জন্য, আপনার কন্টেন্টে অ্যাপ ও ওয়েবসাইটকে লিঙ্ক করার অনুমতি দেওয়া দেখুন।
  4. আপনি যদি নিজের ক্লায়েন্টকে ঐচ্ছিকভাবে কনফিগার করতে চান, তাহলে স্কোপ যোগ করুন এবং আপনার ক্লায়েন্ট কনফিগার করুন (ঐচ্ছিক) বিকল্পের অধীনে স্কোপ যোগ করুন বিকল্পে ক্লিক করুন।
  5. সেভ করুন বিকল্পে ক্লিক করুন।

আপনি এখন পরবর্তী বিভাগে গিয়ে আপনার iOS অ্যাপে App Flip প্রয়োগ করতে পারেন।

আপনার নেটিভ অ্যাপে App Flip প্রয়োগ করুন

App Flip প্রয়োগ করতে, Google থেকে ডিপ লিঙ্ক গ্রহণ করার জন্য আপনার অ্যাপে ব্যবহারকারীর অনুমোদন কোড পরিবর্তন করতে হবে।

OAuth-ভিত্তিক অ্যাপ ফ্লিপ লিঙ্কিং (অ্যাপ ফ্লিপ) Google অ্যাপ থেকে আপনার iOS অ্যাপ খোলে যাতে Google অ্যাপ ব্যবহারকারী আরও সহজে তার অ্যাকাউন্ট লিঙ্ক করতে পারেন। এই ফিচার প্রয়োগ করতে আপনার iOS অ্যাপের কোডে সামান্য পরিবর্তন করতে হবে।

এই ডকুমেন্ট থেকে আপনি জানতে পারবেন যে App Flip-এর সাথে কাজ করার জন্য আপনার iOS অ্যাপ কীভাবে পরিবর্তন করবেন।

স্যাম্পেল ব্যবহার করে দেখুন

App Flip স্যাম্পেল অ্যাপ iOS-এ অ্যাকাউন্ট লিঙ্কিং ইন্টিগ্রেশন দেখায় যা App Flip-এর সাথে মানানসই। Google মোবাইল অ্যাপ থেকে আসা অ্যাপ ফ্লিপ ইউনিভার্সাল লিঙ্কে কীভাবে উত্তর দিতে হয় তা যাচাই করতে আপনি এই অ্যাপ ব্যবহার করতে পারেন।

স্যাম্পেল অ্যাপটি iOS-এর জন্য অ্যাপ ফ্লিপ টেস্ট টুল-এর সাথে ইন্টিগ্রেট করার জন্য আগে থেকেই কনফিগার করা আছে, যা আপনি Google-এর সাথে অ্যাকাউন্ট লিঙ্ক করার কনফিগার করার আগে অ্যাপ ফ্লিপের সাথে আপনার iOS অ্যাপের ইন্টিগ্রেশন যাচাই করতে ব্যবহার করতে পারেন। অ্যাপ ফ্লিপ চালু থাকলে, Google মোবাইল অ্যাপের মাধ্যমে ট্রিগার করা ইউনিভার্সাল লিঙ্ক এই অ্যাপ সিমুলেট করে।

এটি কীভাবে কাজ করে

App Flip-এর সময় Google অ্যাপ ও আপনার অ্যাপের মধ্যে যে ফ্লো স্টেপগুলি হয় সেগুলি নিচে দেওয়া হল:

  1. Google অ্যাপ আপনার অ্যাপের ইউনিভার্সাল লিঙ্ক খোলার চেষ্টা করে। ব্যবহারকারীর ডিভাইসে আপনার অ্যাপ ইনস্টল করা থাকলে এবং ইউনিভার্সাল লিঙ্কের সাথে যুক্ত থাকলে, এটি আপনার অ্যাপ খুলতে পারবে। আরও জানতে ইউনিভার্সাল লিঙ্ক সাপোর্ট করা দেখুন।

  2. আপনার অ্যাপ চেক করে যে ইনকামিং URL-এ এনকোড করা client_id এবং redirect_uri প্যারামিটার প্রত্যাশিত Google ইউনিভার্সাল লিঙ্কের সাথে মেলে কিনা।

  3. আপনার অ্যাপ, OAuth2 সার্ভার থেকে একটি অথরাইজেশন কোডের জন্য অনুরোধ করে। এই ফ্লোয়ের শেষে, আপনার অ্যাপ Google অ্যাপে হয় একটি অথরাইজেশন কোড অথবা একটি সমস্যার মেসেজ পাঠায়। এটি করার জন্য, এটি অথরাইজেশন কোড বা সমস্যার মেসেজের জন্য যোগ করা প্যারামিটার সহ Google-এর ইউনিভার্সাল লিঙ্ক খোলে।

  4. Google অ্যাপ ইনকামিং Google ইউনিভার্সাল লিঙ্ক ম্যানেজ করে এবং বাকি ফ্লো চালিয়ে যায়। কোনও অথরাইজেশন কোড প্রদান করা হলে, লিঙ্ক করার প্রক্রিয়া অবিলম্বে সম্পূর্ণ হয়। টোকেন এক্সচেঞ্জ সার্ভার-টু-সার্ভার হয়, ঠিক যেভাবে ব্রাউজার-ভিত্তিক OAuth লিঙ্কিং ফ্লোতে হয়। কোনও ত্রুটি কোড ফেরত পাঠানো হলে, বিকল্পের মাধ্যমে লিঙ্কিং ফ্লো চলতে থাকে।

অ্যাপ ফ্লিপ কাজ করার জন্য আপনার iOS অ্যাপ পরিবর্তন করা

App Flip-এর সুবিধা পেতে, আপনার iOS অ্যাপে নিম্নলিখিত কোড পরিবর্তন করুন:

  1. আপনার অ্যাপ ডেলিগেটে NSUserActivityTypeBrowsingWeb ম্যানেজ করুন।
  2. পরে ব্যবহার করার জন্য URL থেকে redirect_uri এবং state প্যারামিটার ক্যাপচার করুন।
  3. redirect_uri এই ফর্ম্যাটের সাথে মিলছে কিনা তা চেক করুন:
    https://oauth-redirect.googleusercontent.com/a/GOOGLE_APP_BUNDLE_ID
    https://oauth-redirect-sandbox.googleusercontent.com/a/GOOGLE_APP_BUNDLE_ID
  4. ক্লায়েন্ট আইডি প্রত্যাশিত ভ্যালুর সাথে মিলছে কিনা তা যাচাই করুন। নিম্নলিখিত কোড স্যাম্পেল ব্যবহার করুন:

    func application(_ application: UIApplication,
                     continue userActivity: NSUserActivity,
                     restorationHandler: @escaping ([Any]?) -> Void) -> Bool
    {
        guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
            let incomingURL = userActivity.webpageURL,
            let components = URLComponents(url: incomingURL, resolvingAgainstBaseURL: false),
            let params = components.queryItems else {
                return false
        }
    
        if let clientId = params.filter({$0.name == "client_id"}).first?.value,
            let state = params.filter({$0.name == "state"}).first?.value,
            let redirectUri = params.filter({$0.name == "redirect_uri"}).first?.value {
    
            // Save the redirect_uri and state for later...
    
            // Verify the client id
            return (clientId == GOOGLE_CLIENT_ID)
        } else {
            // Missing required parameters
            return false
        }
    }
    
  5. অনুমোদন সফল হলে, অনুমোদন কোড সহ রিডাইরেক্ট URI-তে কল করুন। নিম্নলিখিত কোড স্যাম্পেল ব্যবহার করুন:

    func returnAuthCode(code: String, state: String, redirectUri: String) {
        var redirectURL = URL(string: redirectUri)
        var components = URLComponents(url: redirectURL, resolvingAgainstBaseURL: false)
    
        // Return the authorization code and original state
        let paramAuthCode = URLQueryItem(name: "code", value: code)
        let paramState = URLQueryItem(name: "state", value: state)
        components?.queryItems = [paramAuthCode, paramState]
        if let resultURL = components?.url {
            UIApplication.shared.open(
                resultURL,
                options: [UIApplicationOpenURLOptionUniversalLinksOnly : true],
                completionHandler: nil)
        }
    }
    
  6. কোনও সমস্যা হলে, রিডাইরেক্ট URI-তে সমস্যার ফলাফল অ্যাটাচ করুন। নিম্নলিখিত কোড স্যাম্পেল ব্যবহার করুন:

    func returnError(redirectUri: String) {
        var redirectURL = URL(string: redirectUri)
        var components = URLComponents(url: redirectURL, resolvingAgainstBaseURL: false)
    
        // Return the authorization code and original state
        let paramError = URLQueryItem(name: "error", value: "invalid_request")
        let paramDescription = URLQueryItem(name: "error_description", value: "Invalid Request")
        components?.queryItems = [paramError, paramDescription]
        if let resultURL = components?.url {
            UIApplication.shared.open(
                resultURL,
                options: [UIApplicationOpenURLOptionUniversalLinksOnly : true],
                completionHandler: nil)
        }
    }
    

Google অ্যাপের মাধ্যমে খোলা হলে, আপনার অ্যাপের ইউনিভার্সাল লিঙ্কে নিম্নলিখিত কোয়েরি প্যারামিটার অন্তর্ভুক্ত থাকে:

  • client_id (String): Google client_id যা আপনার অ্যাপের অধীনে রেজিস্টার করা আছে।
  • scope (List of String): স্পেস দিয়ে আলাদা করা অনুরোধ করা স্কোপের তালিকা।
  • state (String): Google-এর দ্বারা ব্যবহৃত একটি ননস যা যাচাই করে যে অনুমোদনের ফলাফল Google-এর আউটগোয়িং অনুরোধের উত্তরে এসেছে।
  • redirect_uri (String): Google-এর ইউনিভার্সাল লিঙ্ক। Google অ্যাপ খুলতে এবং ফলাফল পাস করতে "ফ্লিপ" URI।

অনুমোদনের ফলাফল সঠিকভাবে রিটার্ন করা হলে যেসব প্যারামিটার ব্যবহার করা হয়:

  • code (String): অনুমোদনের কোডের ভ্যালু, যদি উপলভ্য থাকে।
  • state (String): ইনকামিং ইউনিভার্সাল লিঙ্ক থেকে পাওয়া সঠিক ভ্যালু।

অনুমোদনের ফলাফল অসফলভাবে ফেরত দেওয়া হলে যেসব প্যারামিটার ব্যবহার করা হয়:

  • error (String), নিম্নলিখিত মান সহ:

    • cancelled: সমাধান করা যাবে এমন সমস্যা। Google অ্যাপ, অনুমোদনের URL ব্যবহার করে অ্যাকাউন্ট লিঙ্ক করার চেষ্টা করবে। কিছু উদাহরণ হল ব্যবহারকারী সাইন-ইন করতে পারছেন না, ডিভাইস অফলাইন আছে বা কানেকশন টাইম-আউট হয়ে গেছে।
    • unrecoverable: ডেটা ফিরিয়ে আনা যাবে না এমন সমস্যা। যেমন, ব্যবহারকারী কোনও বন্ধ অ্যাকাউন্টের সাথে লিঙ্ক করার চেষ্টা করলে, Google অ্যাপ অ্যাকাউন্ট লিঙ্ক করার প্রসেস বাতিল করে দেবে।
    • invalid_request: অনুরোধের প্যারামিটার ভুল বা নেই। এই সমস্যাটি সমাধান করা যাবে। Google অ্যাপ, অথরাইজেশন URL ব্যবহার করে অ্যাকাউন্ট লিঙ্ক করার চেষ্টা করবে।
    • access_denied: ব্যবহারকারী সম্মতির অনুরোধ প্রত্যাখ্যান করেছেন। এই সমস্যা সমাধান করা যাবে না; Google অ্যাপ লিঙ্কিং বাতিল করে দেয়।
  • error_description (String, ঐচ্ছিক): ব্যবহার করা সহজ এমন ত্রুটি মেসেজ।

সব ধরনের সমস্যার জন্য, আপনাকে অবশ্যই নির্দিষ্ট করা REDIRECT_URI-এ রেসপন্স ডেটা ফেরত দিতে হবে যাতে উপযুক্ত ফলব্যাক ট্রিগার করা নিশ্চিত করা যায়।

অ্যাপ ফ্লিপের জন্য আপনার অনুমোদনের এন্ডপয়েন্ট পরিবর্তন করুন

Google-এর App Flip রিডাইরেক্ট URL ব্যবহার করে অনুরোধ গ্রহণ করার জন্য আপনার প্ল্যাটফর্ম কনফিগার করুন:

  • Google Home অ্যাপ
    https://oauth-redirect.googleusercontent.com/a/com.google.Chromecast.dev
    https://oauth-redirect.googleusercontent.com/a/com.google.Chromecast.enterprise
    https://oauth-redirect.googleusercontent.com/a/com.google.Chromecast
    https://oauth-redirect-sandbox.googleusercontent.com/a/com.google.Chromecast.dev
    https://oauth-redirect-sandbox.googleusercontent.com/a/com.google.Chromecast.enterprise
    https://oauth-redirect-sandbox.googleusercontent.com/a/com.google.Chromecast
    
  • Google Assistant অ্যাপ
    https://oauth-redirect.googleusercontent.com/a/com.google.OPA.dev
    https://oauth-redirect.googleusercontent.com/a/com.google.OPA.enterprise
    https://oauth-redirect.googleusercontent.com/a/com.google.OPA
    https://oauth-redirect-sandbox.googleusercontent.com/a/com.google.OPA.dev
    https://oauth-redirect-sandbox.googleusercontent.com/a/com.google.OPA.enterprise
    https://oauth-redirect-sandbox.googleusercontent.com/a/com.google.OPA
    

Google Home app (GHA)-এর জন্য, স্মার্ট হোম অ্যাকাউন্ট লিঙ্কিং com.google.Chromecast রিডাইরেক্ট URL ব্যবহার করে। আপনার অথরাইজেশন সার্ভার যাতে এইসব রিডাইরেক্ট URL-কে অনুমতি দেয় তা নিশ্চিত করুন।

অনুরোধ পেলে, client_id এবং redirect_uri প্যারামিটার দ্বারা নির্দিষ্ট করা URL প্রত্যাশিত মানের সাথে মিলছে কিনা তা চেক করুন। ক্লায়েন্ট যাচাইকরণ ব্যর্থ হলে, redirect_uri-এ invalid_request সমস্যাটি রিটার্ন করুন।

আপনার ডিভাইসে App Flip পরীক্ষা করুন

আপনি এখন ক্লাউড-টু-ক্লাউড ইন্টিগ্রেশন তৈরি করেছেন এবং কনসোলে ও আপনার অ্যাপে অ্যাপ ফ্লিপ কনফিগার করেছেন, আপনি নিজের মোবাইল ডিভাইসে অ্যাপ ফ্লিপ পরীক্ষা করতে পারেন। App Flip পরীক্ষা করার জন্য আপনি Google Home অ্যাপ ব্যবহার করতে পারেন।

Google Home অ্যাপ থেকে App Flip পরীক্ষা করতে, এই ধাপগুলি অনুসরণ করুন:

  1. Developer Console-এ গিয়ে আপনার প্রোজেক্ট বেছে নিন।
  2. ক্লাউড-টু-ক্লাউড > পরীক্ষা করুন বিকল্পে যান।
  3. Home অ্যাপ থেকে অ্যাকাউন্ট লিঙ্ক করার ফ্লো ট্রিগার করুন:
    1. Google Home app (GHA) খুলুন।
    2. + বোতামে ক্লিক করুন।
    3. ডিভাইস সেট-আপ করুন বিকল্পে ক্লিক করুন।
    4. আগে থেকেই কিছু সেট-আপ করা আছে? বিকল্পে ক্লিক করুন
    5. পরিষেবা প্রদানকারীর তালিকা থেকে আপনার ক্লাউড-টু-ক্লাউড ইন্টিগ্রেশন বেছে নিন। তালিকায় এটির আগে “[test]” লেখা থাকবে। তালিকা থেকে আপনার [test] ইন্টিগ্রেশন বেছে নিলে, এটি আপনার অ্যাপ খুলবে।
    6. আপনার অ্যাপ চালু হয়েছে কিনা তা যাচাই করুন এবং আপনার অনুমোদন ফ্লো পরীক্ষা করা শুরু করুন।