OAuth ব্যবহার করে তার / তার টুইটার পরিচয় যাচাই করার পরে কোনও ব্যবহারকারীর ইমেল আইডি পাওয়ার কোনও উপায় আছে কি?


85

আমি ওআউথে নতুন এবং টুইটার এপিআই দিয়ে ঘুরে বেড়াচ্ছি। আমি অনুরোধ করে প্রমাণীকরণের পরে কোনও ব্যবহারকারীর শংসাপত্রগুলি আনতে সক্ষম হয়েছি http://api.twitter.com/1/account/verify_credentials.xml। প্রতিক্রিয়াটিতে ব্যবহারকারীর আইডি, স্ক্রিনের নাম ইত্যাদি রয়েছে তবে ইমেল আইডি নেই।

ব্যবহারকারীর ইমেল আইডি পুনরুদ্ধার করা কি আদৌ সম্ভব?

হালনাগাদ

আমি বিশ্বাস করি ফেসবুক এই তথ্য সরবরাহ করে যদি আপনি বিশেষভাবে বর্ধিত অনুমতিগুলির জন্য অনুরোধ করেন । টুইটারের জন্য কি তেমন কিছু রয়েছে?


ফিলিপ:: পিআই সম্মত হন এবং আমি সন্দেহ করি যে সেখানে নেই, তবে আমি যাচাই করেছিলাম এবং চেকগুলিতে স্বাক্ষর করে তাকেই আমি রিপোর্ট করতে চেয়েছিলাম।
মনোজ গোবিন্দন

4
@ ফিলিপ পটার আপনি কেন এটি বলছেন? ইমেল ঠিকানা হ'ল বেশিরভাগ aথ সরবরাহকারীদের মধ্যে উল্লেখের মূল বিষয়। আপনার যদি তৃতীয় পক্ষের লগইন কার্যকারিতা (যেমন এই ওয়েবসাইট) সহ কোনও ওয়েবসাইট রয়েছে এবং কোনও ব্যবহারকারী টুইটারের সাহায্যে লগ ইন করেন তবে কেবলমাত্র অনন্য শনাক্তকারী যা ব্যবহার করা যায় তা হ'ল ইউজার_আইডি। যদি পরবর্তী সময় ব্যবহারকারীর সাথে আসে এবং গুগলে লগ ইন করে তবে আপনার এটি জানার উপায় নেই যে এটি আগের মতো একই ব্যবহারকারী। তবে যদি দুটি ভিন্ন তৃতীয় পক্ষের সরবরাহকারী একটি ইমেল ঠিকানা দেয় তবে আমরা নিশ্চিত হতে পারি যে এটি একই ব্যক্তি (যতক্ষণ না তৃতীয় পক্ষের দ্বারা ইমেল ঠিকানাটি যাচাই করা হয়)
মুল্লহাউসন

@ মুল্লহাউসন একই ব্যক্তির যে কোনও উপায়ে বিভিন্ন ইমেল অ্যাকাউন্ট থাকতে পারে। এটি ইমেল বিকল্প থাকা সত্ত্বেও ভাল। টুইটার সমর্থন করছে না এমন ইমেল ঠিকানার উপর নির্ভর করার পরিবর্তে আপনি এক সরবরাহকারীর মাধ্যমে প্রমাণীকরণের পরে একাধিক অ্যাকাউন্ট একসাথে যুক্ত করার ক্ষমতা আমি এতে বেক করব। আমি যা বলছি তা নিয়ে রোল বলছি।
জেসন সেব্রিং

উত্তর:


106

ব্যবহারকারীর ইমেল ঠিকানাটি API- র মাধ্যমে পুনরুদ্ধার করা যায় না। এটি এপিআই টিমের ইচ্ছাকৃত ডিজাইনের সিদ্ধান্ত।

আপডেট 2015.08.18:

ব্যবহারকারীর কাছ থেকে কোনও ইমেল ঠিকানার জন্য অনুরোধ করা সম্ভব তবে এটিতে আপনার অ্যাপ্লিকেশনকে শ্বেত তালিকাভুক্ত করা প্রয়োজন। আপনার অ্যাপ্লিকেশনটির সাদা তালিকাভুক্তির জন্য অনুরোধ করতে API কল এবং এই ফর্মটির বিশদ জানতে https://dev.twitter.com/rest/references/get/account/verify_credentials দেখুন ।


11
আমরা কি এটি বাগ হিসাবে ফাইল করতে পারি, সত্যায়িত ব্যবহারকারীর ইমেল ঠিকানাটির আমার অত্যন্ত প্রয়োজন?
iMOBDEV

9
খুব খারাপ এবং আপনি যেমন বলেছেন, একটি ইচ্ছাকৃত সিদ্ধান্ত। আপনি যদি কারও অ্যাট্রিচ্যাট করছেন এবং আপনার নিজস্ব ব্যবহারকারী ডাটাবেস রয়েছে, আপনার কোনও বিদ্যমান ব্যবহারকারী (একই ই-মেইল সহ) ইতিমধ্যে বিদ্যমান কিনা তা পরীক্ষা করে দেখতে হবে।
ভায়ানা

4
@ জিগনেশব্রাহ্মখত্রি আমার অ্যাপ্লিকেশনটিতে আমার বিদ্যমান ব্যবহারকারী মডেলটির সাথে একই সমস্যা ছিল যার জন্য একটি ইমেল ঠিকানা প্রয়োজন। আমি স্থির করেছি যে অতিরিক্ত পদক্ষেপে গিয়ে ব্যবহারকারীর অনুপস্থিত তথ্য সম্পূর্ণ করার জন্য একটি ফর্ম প্রদর্শন করুন।
কেনে মায়ার

24
@ কেনিএম এটি খুব নিরাপদ নয়, আমি এমন কোনও অ্যাকাউন্টের ইমেলটি টাইপ করতে পারি যা আমার নয় এবং সেই অ্যাকাউন্টে জুড়ি দেওয়া যায় ...
ব্রায়ান গ্রাহাম

4
কোনও ব্যবহারকারী যখন টুইটারের সাহায্যে সাইন ইন করেন, তখন আমার তাদের প্রয়োজন হয় একটি ইমেল ঠিকানাও প্রবেশ করাতে হবে, তারপরে তাদের অ্যাকাউন্টটি সক্রিয় করার আগে এটি যাচাই করে আনুন। মূলত আমি তাদের পাসওয়ার্ডের পরিবর্তে তাদের টুইটার অ্যাকাউন্টটি ব্যবহার করতে দিচ্ছি।
গাস শর্টজ

16

পাইথন / জ্যাঙ্গোতে লেখা আউটসোর্সফ্যাক্টরের জন্য , আমি oAuth1 এর মাধ্যমে ব্যবহারকারীর নাম পাই, তারপরে "ব্যবহারকারীর নাম @twitter.com" হিসাবে একটি ইমেল তৈরি করি যা টুইটারে অনন্য হওয়ার গ্যারান্টিযুক্ত। তারপরে আমি এটি ব্যবহার করে আমার স্থানীয় ব্যবহারকারীর অ্যাকাউন্টের সাথে যুক্ত হওয়ার জন্য একটি দুর্দান্ত ইউআইডি পেয়েছি। ইয়াহুর জন্য একই জিনিস। গুগল এবং ফেসবুক oAuth2 ব্যবহার করে এবং তারা আমাকে অনুরোধের ইমেল ঠিকানা দেয় যা দুর্দান্ত।

একক অ্যাকাউন্টের সাথে একাধিক সামাজিক সংযোগগুলি নিশ্চিত করতে, ব্যবহারকারী স্থানীয়ভাবে অ্যাকাউন্ট তৈরি করার পরে এবং লগ ইন করার পরে আমি কেবল সামাজিক অ্যাকাউন্ট সংযুক্তিকে অনুমতি দিই।

সুতরাং, আপনাকে প্রথমে একটি অ্যাকাউন্ট তৈরি করতে হবে (স্থানীয় অ্যাকাউন্ট), তারপরে আপনি আপনার ভবিষ্যতের লগইনগুলি সহজ করার জন্য কোনও সামাজিক oAuth সরবরাহকারী ব্যবহার করতে পারেন। এটি আমার সাইটের জন্য বাক্সের জন্য সেরা ব্যাং।

যাইহোক, আপনি টুইটার থেকে আইডি কিছু অনন্য ফর্ম পাবেন। সুতরাং এটি ব্যবহার করুন। আপনি পরে বা সমিতির আগে কোনও ইমেল ঠিকানা চাইতে পারেন।


4
"আপনার ভবিষ্যতের লগইনগুলি সহজ করার জন্য সরবরাহকারী", আমি এটির সাথে একমত নই, কারণ আপনি ইতিমধ্যে একটি বড় আকারের ফর্ম দেখিয়ে একটি স্থানীয় অ্যাকাউন্ট তৈরি করতে বলে তাদের সমস্যার সমাধান করেছেন যা গ্রাহক সর্বদা পূরণ করতে পছন্দ করেন না।
আরজেআর

@ আরজেআর ওয়েল, টুইটার আপনাকে ইমেল ঠিকানা দিচ্ছে না। সুতরাং আপনাকে যাইহোক এটি জিজ্ঞাসা করতে হবে। আমার ক্ষেত্রে, আমি যখন থাকি তখনও আমি একটি পাসওয়ার্ড চাইছি। আপনার বিভিন্ন প্রয়োজনীয়তা সহ একটি সাইট থাকতে পারে, এবং এটি খুব ভাল।
un33k

3

ইমেল ঠিকানা তাদের OAuth প্রতিক্রিয়াগুলিতে টুইটার দ্বারা আপত্তি করা হয়। একটি "টুইটারের সাথে নিবন্ধন করুন" ফাংশন অন্তর্ভুক্ত করতে ইচ্ছুক লোকেদের জন্য যা সর্বদা দুর্দান্ত সমস্যা ছিল।

সাম্প্রতিককালে (২০১৫ এর প্রথম দিকে), টুইটার দ্বিতীয় পরিষেবা কলের মাধ্যমে ইমেল ঠিকানা সমর্থন যোগ করেছে, তবে নির্দিষ্ট, আপত্তিজনক, শর্তাধীন।

https://dev.twitter.com/rest/references/get/account/verify_credentials

সুতরাং এখন এটি সম্ভব, তবে আমার মতামত প্রতিটি সরবরাহকারী-তবে-টুইটারের একক সাইন অন একটি OAuth প্রয়োগ করা চালিয়ে যেতে হবে। তারা স্বাভাবিকভাবে কাজ না করা অবধি তাদের বয়কট করতে হবে, মানে প্রতিটি অন্যান্য OAuth সরবরাহকারীর মতো।


3

অ্যান্ড্রয়েডে ফ্যাব্রিক ব্যবহার করে , আমি ব্যবহারকারীর ইমেল ঠিকানাটির অনুরোধ করছি:

TwitterAuthClient authClient = new TwitterAuthClient();

authClient.requestEmail(session, new Callback<String>() {

    @Override
    public void success(Result<String> result) {
        // Do something with the result, which provides the email address
    }

    @Override
    public void failure(TwitterException exception) {
      // Do something on failure
    }
});

Http://docs.fabric.io/android/twitter/request-user-email-address.html দেখুন


হ্যাঁ আমি অ্যান্ড্রয়েডের জন্য একই জিনিস করি তবে ওয়েবে ইমেল ঠিকানা পেতে অক্ষম আমি এই লিঙ্কটি অনুসরণ করে ইমেল ঠিকানার অনুরোধও জমা দেব dev.twitter.com/rest/references/get/account/verify_credentials
মুহাম্মদ ওয়াকাস

1

আমার ক্ষেত্রে প্রতিবার আমি প্রতিক্রিয়া পাই আমি প্রতিটি ব্যবহারকারীর জন্য একটি অনন্য প্রমাণীকরণ আইডি পেয়েছি এবং প্রতিবার ব্যবহারকারীর জন্য এটির মতো। তাই আমি আইডিটি ইউনিক_আইডি@টিউইটার.কমের মতো ইমেল তৈরি করতে এবং এটি আমার সাইটে ইতিমধ্যে আছে কিনা তা প্রথমবারের জন্য (প্রথমবারের মতো এটি নয়) পরীক্ষা করে ব্যবহারকারীর নিবন্ধভুক্ত করতে ব্যবহার করেছি used তারপরে যদি তিনি দ্বিতীয়বার লগইন করেন তবে আমি আবার ইমেল তৈরি করব এবং এটি ইতিমধ্যে সেখানে আছে কিনা তা পরীক্ষা করে দেখুন। এটির মাধ্যমে আমাকে প্রথমে একটি স্থানীয় অ্যাকাউন্ট তৈরি করতে হবে না এবং লগইন করতে তাকে সনাক্ত করতে পারি।


1

লারাভেলে টুইটার ব্যবহারকারী ইমেলটি কীভাবে পাবেন তা এখানে উদাহরণ এবং coditty.com এ আপনি অ্যাঙ্গুলার + লারাভেল ব্যবহার করে পুরো উদাহরণটি খুঁজে পেতে পারেন

 // get token secret from db 
        $token = TwitterTokens::where('oauth_token', $request->input('oauth_token'))->first(); 


        // open twitter connection
        $connection = new \Abraham\TwitterOAuth\TwitterOAuth(
                        $this->twitter_consumer_key, 
                        $this->twitter_secret, 
                        $request->input('oauth_token'), 
                        $token->oauth_token_secret// twitter secret from DB
                        );

        // get acces token
        $access_token = $connection->oauth("oauth/access_token", ["oauth_verifier" => $request->input('oauth_verifier')]); 

         // new TwitterOAuth instance to get email
        $twitterOAuth = new \Abraham\TwitterOAuth\TwitterOAuth( $this->twitter_consumer_key, $this->twitter_secret, $access_token['oauth_token'], $access_token['oauth_token_secret'] );

        // Let's get the user's info with email
        $twitterUser = $twitterOAuth->get('account/verify_credentials', ['include_entities' => 'false','include_email'=>'true','skip_status'=>'true',]);


        // output user object from twitter in your Log file
        Log::info(['user'=>$twitterUser]);

4
একটি সম্ভাব্য সমাধানের একটি লিঙ্ক সর্বদা স্বাগত, তবে দয়া করে লিঙ্কটির চারপাশে প্রসঙ্গটি যুক্ত করুন যাতে আপনার সহ ব্যবহারকারীদের এটি কী এবং কেন আছে তা কিছুটা ধারণা থাকতে পারে। টার্গেট সাইটটি যদি অ্যাক্সেসযোগ্য না হয় বা স্থায়ীভাবে অফলাইনে চলে যায় তবে সর্বদা গুরুত্বপূর্ণ লিঙ্কের সর্বাধিক প্রাসঙ্গিক অংশটি উদ্ধৃত করুন। বিবেচনায় রাখুন যে কোনও বাহ্যিক সাইটের লিঙ্কের চেয়ে সবেমাত্র বেশি হওয়া একটি সম্ভাব্য কারণ কেন এবং কীভাবে কিছু উত্তর মুছে ফেলা হয়?
টুনাকি


0

এই কোড যুক্ত করুন!

$params = array('include_email' => 'true', 'include_entities' => 'false', 'skip_status' => 'true');

`$data = $connection->get('account/verify_credentials', $params); // get the data`

// getting twitter user profile details $twt_id = $data->id; //twitter user id $twt_email = $data->email; //twitter user email

সম্পূর্ণ প্রক্রিয়া চেকআউট এখানে


0

কে বলেছে আপনি ব্যবহারকারীদের ইমেল পেতে পারবেন না, "ব্যবহারকারীদের কাছ থেকে ইমেল ঠিকানাগুলির অনুরোধ করুন" চেকবক্সটি অ্যাপের অনুমতি অনুসারে উপলব্ধ under অ্যাপস.টিউইউইটার ডটকম- । গোপনীয়তা নীতি URL এবং পরিষেবার শর্তাদি URL ক্ষেত্রগুলি অবশ্যই অ্যাপ্লিকেশন সেটিংসে ইমেল ঠিকানার অ্যাক্সেসের অ্যাক্সেসের জন্য সম্পূর্ণ করতে হবে। যদি সক্ষম করা থাকে তবে ব্যবহারকারীদের ওআউথ / অনুমোদিত ডায়ালগের মাধ্যমে জানানো হবে যে আপনার অ্যাপ্লিকেশন তাদের ইমেল ঠিকানা অ্যাক্সেস করতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.