दिलचस्प पोस्ट
ASP.NET MVC नियंत्रक के लिए jQuery अजाक्स पोस्टिंग सरणी NSManagedObject के विशिष्ट उपवर्ग खोजने में असमर्थ रेगेक्स को गठजोड़ करें एंड्रॉइड एचटीटीपी पोस्ट: परिणाम कैसे प्राप्त करें python re.sub समूह: नंबर के बाद \ number Android डिवाइस पर विश्वसनीय सीए प्रमाण पत्र कैसे स्थापित करें? जावास्क्रिप्ट MySQL के साथ कनेक्ट कर सकते हैं? आंतरिक एचटीएमएल पर ईलेमेंट बनाने का लाभ? लाइब्रेरी के बिना जावा में 9 से कम की जांच करने का सबसे अच्छा तरीका एनपीएम / यूलर जनरेटर-कोणीय बिना एसड्यूओ इंस्टॉल करें सी के रैंड () के लिए कौन सी आम एल्गोरिदम का उपयोग किया जाता है? फेसबुक से लाइव लाइव टोकन प्राप्त करें पास-थ्रू माउस इवेंट्स को पेरेंट कंट्रोल "टेक्स्ट" और नए स्ट्रिंग ("टेक्स्ट") में क्या अंतर है? आज विस्तार में कोरडाटा मॉडल को कैसे पहुंचाएं (आईओएस)

Google ऐप्स उपयोगकर्ता खाता डेटा वापस करने के लिए oauth के साथ bash curl का उपयोग करें?

मैं Google Apps में उपयोगकर्ता खातों के बैच (जैसे बनाया गया या अंतिम लॉगइन) के बारे में जानकारी वापस करने के लिए कर्ल का उपयोग करने के लिए एक बहुत ही सरल विधि की तलाश कर रहा हूं मैं कर्ल और Google Apps एपीआई के बहुत अनुभवहीन हूं।

क्या किसी व्यक्ति को ओएथ के साथ कर्ल का उपयोग करने के लिए उपयोगकर्ता खाते के डेटा का अनुरोध करने के लिए एक अच्छा परिचयात्मक लेख का पता है?

आपका अग्रिम में ही बहुत धन्यवाद!

वेब के समाधान से एकत्रित समाधान "Google ऐप्स उपयोगकर्ता खाता डेटा वापस करने के लिए oauth के साथ bash curl का उपयोग करें?"

इसे आसानी से ओअथ 2.0 के रूप में हासिल नहीं किया जा सकता है और बैसन द्वारा आसानी से प्रबंधित नहीं किया जाता है। यह कहने के बाद, यहां एक मूल संस्करण है जो आपको उस डेटा को देगा जो आप देख रहे हैं। ग्रिप्स कुछ सफाई का इस्तेमाल कर सकते हैं, लेकिन फिर, फिर grep के साथ JSON की व्याख्या करना वैसे भी एक बहुत बुरा विचार है। यह एक आदर्श उदाहरण है कि Google API लाइब्रेरी क्यों मौजूद हैं और इसका उपयोग किया जाना चाहिए

# Store our credentials in our home directory with a file called . my_creds=~/.`basename $0` # create your own client id/secret # https://developers.google.com/identity/protocols/OAuth2InstalledApp#creatingcred client_id='YOUR OWN CLIENT ID' client_secret='YOUR OWN SECRET' if [ -s $my_creds ]; then # if we already have a token stored, use it . $my_creds time_now=`date +%s` else scope='https://www.googleapis.com/auth/admin.directory.user.readonly' # Form the request URL # https://developers.google.com/identity/protocols/OAuth2InstalledApp#step-2-send-a-request-to-googles-oauth-20-server auth_url="https://accounts.google.com/o/oauth2/v2/auth?client_id=$client_id&scope=$scope&response_type=code&redirect_uri=urn:ietf:wg:oauth:2.0:oob" echo "Please go to:" echo echo "$auth_url" echo echo "after accepting, enter the code you are given:" read auth_code # exchange authorization code for access and refresh tokens # https://developers.google.com/identity/protocols/OAuth2InstalledApp#exchange-authorization-code auth_result=$(curl -s "https://www.googleapis.com/oauth2/v4/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d code=$auth_code \ -d client_id=$client_id \ -d client_secret=$client_secret \ -d redirect_uri=urn:ietf:wg:oauth:2.0:oob \ -d grant_type=authorization_code) access_token=$(echo -e "$auth_result" | \ grep -Po '"access_token" *: *.*?[^\\]",' | \ awk -F'"' '{ print $4 }') refresh_token=$(echo -e "$auth_result" | \ grep -Po '"refresh_token" *: *.*?[^\\]",*' | \ awk -F'"' '{ print $4 }') expires_in=$(echo -e "$auth_result" | \ grep -Po '"expires_in" *: *.*' | \ awk -F' ' '{ print $3 }' | awk -F',' '{ print $1}') time_now=`date +%s` expires_at=$((time_now + expires_in - 60)) echo -e "access_token=$access_token\nrefresh_token=$refresh_token\nexpires_at=$expires_at" > $my_creds fi # if our access token is expired, use the refresh token to get a new one # https://developers.google.com/identity/protocols/OAuth2InstalledApp#offline if [ $time_now -gt $expires_at ]; then refresh_result=$(curl -s "https://www.googleapis.com/oauth2/v4/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d refresh_token=$refresh_token \ -d client_id=$client_id \ -d client_secret=$client_secret \ -d grant_type=refresh_token) access_token=$(echo -e "$refresh_result" | \ grep -Po '"access_token" *: *.*?[^\\]",' | \ awk -F'"' '{ print $4 }') expires_in=$(echo -e "$refresh_result" | \ grep -Po '"expires_in" *: *.*' | \ awk -F' ' '{ print $3 }' | awk -F',' '{ print $1 }') time_now=`date +%s` expires_at=$(($time_now + $expires_in - 60)) echo -e "access_token=$access_token\nrefresh_token=$refresh_token\nexpires_at=$expires_at" > $my_creds fi # call the Directory API list users endpoint, may be multiple pages # https://developers.google.com/admin-sdk/directory/v1/reference/users/list while : do api_data=$(curl -s --get https://www.googleapis.com/admin/directory/v1/users \ -d customer=my_customer \ -d prettyPrint=true \ `if [ -n "$next_page" ]; then echo "-d pageToken=$next_page"; fi` \ -d maxResults=500 \ -d "fields=users(primaryEmail,creationTime,lastLoginTime),nextPageToken" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $access_token") echo -e "$api_data" | grep -v 'nextPageToken' next_page=$(echo $api_data | \ grep -Po '"nextPageToken" *: *.*?[^\\]"' | \ awk -F'"' '{ print $4 }') if [ -z "$next_page" ] then break fi done 

धन्यवाद जे ली, मैं एक नियमित स्क्रिप्ट को नियमित उपयोगकर्ता इंटरफ़ेस (कोई Google ऐप नहीं) तक पहुंचने के लिए साझा करना चाहता हूं। बस Google API कंसोल पर चालू करें-चालू Google+ API को याद रखें:

 # Store our credentials in our home directory with a file called .<script name> my_creds=~/.`basename $0` client_id='********PUT YOURS**********.apps.googleusercontent.com' client_secret='' # not really a secret if [ -s $my_creds ]; then # if we already have a token stored, use it . $my_creds time_now=`date +%s` else scope='profile' # Form the request URL # http://goo.gl/U0uKEb auth_url="https://accounts.google.com/o/oauth2/auth?client_id=$client_id&scope=$scope&response_type=code&redirect_uri=urn:ietf:wg:oauth:2.0:oob" echo "Please go to:" echo echo "$auth_url" echo echo "after accepting, enter the code you are given:" read auth_code # swap authorization code for access and refresh tokens # http://goo.gl/Mu9E5J auth_result=$(curl -s https://accounts.google.com/o/oauth2/token \ -H "Content-Type: application/x-www-form-urlencoded" \ -d code=$auth_code \ -d client_id=$client_id \ -d client_secret=$client_secret \ -d redirect_uri=urn:ietf:wg:oauth:2.0:oob \ -d grant_type=authorization_code) access_token=$(echo -e "$auth_result" | \ grep -Po '"access_token" *: *.*?[^\\]",' | \ awk -F'"' '{ print $4 }') refresh_token=$(echo -e "$auth_result" | \ grep -Po '"refresh_token" *: *.*?[^\\]",*' | \ awk -F'"' '{ print $4 }') expires_in=$(echo -e "$auth_result" | \ grep -Po '"expires_in" *: *.*' | \ awk -F' ' '{ print $3 }' | awk -F',' '{ print $1}') time_now=`date +%s` expires_at=$((time_now + expires_in - 60)) echo -e "access_token=$access_token\nrefresh_token=$refresh_token\nexpires_at=$expires_at" > $my_creds fi # if our access token is expired, use the refresh token to get a new one # http://goo.gl/71rN6V if [ $time_now -gt $expires_at ]; then refresh_result=$(curl -s https://accounts.google.com/o/oauth2/token \ -H "Content-Type: application/x-www-form-urlencoded" \ -d refresh_token=$refresh_token \ -d client_id=$client_id \ -d client_secret=$client_secret \ -d grant_type=refresh_token) access_token=$(echo -e "$refresh_result" | \ grep -Po '"access_token" *: *.*?[^\\]",' | \ awk -F'"' '{ print $4 }') expires_in=$(echo -e "$refresh_result" | \ grep -Po '"expires_in" *: *.*' | \ awk -F' ' '{ print $3 }' | awk -F',' '{ print $1 }') time_now=`date +%s` expires_at=$(($time_now + $expires_in - 60)) echo -e "access_token=$access_token\nrefresh_token=$refresh_token\nexpires_at=$expires_at" > $my_creds fi # call the Directory API list users endpoint, may be multiple pages # http://goo.gl/k0jnQJ api_data=$(curl -s --get https://www.googleapis.com/plus/v1/people/me \ -d prettyPrint=true \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $access_token") echo -e "$api_data"