मैं Google+ एपीआई का उपयोग कर रहा हूं और मुझे बुनियादी प्रोफ़ाइल जानकारी प्राप्त करने की आवश्यकता है। मैं उपयोगकर्ता में सही ढंग से लॉग इन कर सकता हूं।
Xamarin दस्तावेज़ीकरण में मुझे निम्नलिखित कॉल मिली:
var person = PlusClass.PeopleApi.GetCurrentPerson(_googleApiClient);
लेकिन यह बहिष्कृत के रूप में दिखाया गया है। कोई जानता है कि प्रोफ़ाइल जानकारी कैसे प्राप्त करें?
2 जवाब
आपका उत्तर ठीक है, लेकिन कुछ और शोध के बाद मुझे एक बेहतर समाधान मिला। मैं अब "नया" GoogleSignInApi का उपयोग करता हूं। यदि आप dll Xamarin.GooglePlayServices.Auth
डालते हैं तो यह काम करता है।
इस लाइन के साथ उपयोगकर्ता को OnActivityResultMethod()
के भीतर लाना संभव है:
var signInInfo = Auth.GoogleSignInApi.GetSignInResultFromIntent(data);
अधिक जानकारी: https://developers.google.com/identity/sign- इन/एंड्रॉइड/साइन-इन
उपयोगकर्ता के ईमेल को पुनः प्राप्त करने के लिए PlusClass.AccountApi.GetAccountName
का उपयोग करें।
if (client.IsConnected)
{
var emailAddress = PlusClass.AccountApi.GetAccountName(client);
Log.Debug(TAG, emailAddress);
}
नोट: इस डेटा तक पहुंचने के लिए आपको GET_ACCOUNTS
अनुमति की आवश्यकता होगी:
AndroidManifest
के माध्यम से मैन्युअल प्रविष्टि:
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
या मैनिफेस्ट संपत्ति संपादक के माध्यम से:
प्रोफ़ाइल जानकारी:
नोट: सभी उपयोगकर्ताओं के पास असाइन की गई/उपलब्ध सभी प्रोफ़ाइल जानकारी नहीं होती है
अपने GoogleApiClient.Builder
में PlusClass.ScopePlusProfile
जोड़ें:
.AddScope(PlusClass.ScopePlusProfile)
आईपर्सन उदाहरण:
var emailAddress = PlusClass.AccountApi.GetAccountName(client);
Log.Debug(TAG, emailAddress);
var peopleResult = await PlusClass.PeopleApi.LoadAsync(client, new string[] { "me" } );
if (peopleResult.Status.StatusCode == CommonStatusCodes.Success)
{
if (peopleResult.PersonBuffer.Count > 0)
{
try // try/catch is needed as emumerator will always(?) fault in move next, broken api
{
foreach (var person in peopleResult.PersonBuffer)
{
Log.Debug(TAG, person.DisplayName);
Log.Debug(TAG, person.Id);
Log.Debug(TAG, person.Url);
if (person.HasImage)
Log.Debug(TAG, person.Image.Url);
Log.Debug(TAG, person.AboutMe);
}
}
catch (Exception e)
{
Log.Debug(TAG, $"{e.Message}");
}
finally
{
peopleResult.Release(); // prevent memory leak
}
}
}
else
{
Log.Debug(TAG, $"{peopleResult.Status.StatusMessage}");
}
नमूना आउटपुट:
[MyGPlus] xxxxxx@gmail.com
[MyGPlus] 00000000000000000000
[MyGPlus] Sushi Hangover
[MyGPlus] https://plus.google.com/105138306217936737331
[MyGPlus] https://lh6.googleusercontent.com/-F3PtIL2g-dM/AAAAAAAAAAI/AAAAAAAAAVw/BlrXmOgCSoY/photo.jpg?sz=50
संबंधित सवाल
नए सवाल
android
एंड्रॉइड Google का मोबाइल ऑपरेटिंग सिस्टम है, जिसका उपयोग प्रोग्रामिंग या डिजिटल डिवाइस (स्मार्टफोन, टैबलेट, ऑटोमोबाइल्स, टीवी, वियर, ग्लास, IoT) को विकसित करने के लिए किया जाता है। एंड्रॉइड से संबंधित विषयों के लिए, एंड्रॉइड-विशिष्ट टैग जैसे कि एंड्रॉइड-इरादे, एंड्रॉइड-गतिविधि, एंड्रॉइड-एडॉप्टर आदि का उपयोग करें। विकास या प्रोग्रामिंग के अलावा अन्य प्रश्नों के लिए, लेकिन एंड्रॉइड फ्रेमवर्क से संबंधित हैं, इस लिंक का उपयोग करें: https: // android.stackexchange.com।