मैं Google एपीआई के साथ काम करने के लिए नया हूं लेकिन मेरे पास एक प्रोजेक्ट है जिसके लिए मुझे ईमेल द्वारा उपयोगकर्ता के प्रबंधक को खोजने के लिए अपने डोमेन तक पहुंचने की आवश्यकता है। कोड शुरू करने से पहले मैं सबकुछ सेट करना चाहता था इसलिए मैंने PHP के लिए example file का पालन किया। मैं इसे काम करने में सक्षम था लेकिन इसे समाप्त होने के बाद टोकन को रीफ्रेश करने के साथ कुछ समस्याएं थीं और शोध ने मुझे Service Account का उपयोग करने के लिए धक्का दिया, क्योंकि यह एक सर्वर क्रॉन स्क्रिप्ट है और मैं किसी भी उपयोगकर्ता इंटरैक्शन से निपटना नहीं चाहता हूं।Google एपीआई: 404 डोमेन नहीं मिला
मैं सेवा खाता बनाया था, सक्षम जी सुइट डोमेन चौड़ा प्रतिनिधिमंडल, और उपयोग जोड़ा के लिए: https://www.googleapis.com/auth/admin.directory.user.readonly
मैं अपने स्क्रिप्ट के साथ एक Google_Service_Exception
मिलता है।
प्रतिक्रिया है:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "notFound",
"message": "Domain not found."
}
],
"code": 404,
"message": "Domain not found."
}
}
मैं इसका मतलब यह है कि यह खातों डोमेन पता नहीं है, लेकिन मुझे लगता है मैं यह कैसे हल कर सकते हैं नहीं दिख रहा है यह सोचते हैं रहा हूँ। मुझे लगता है कि अगर यह एक अनुमति मुद्दा था, तो Google मुझे बताएगा। मैंने ऑनलाइन खोज करने की कोशिश की लेकिन कोई भाग्य नहीं है क्योंकि मुझे मिले मुद्दों को एक अलग विधि का उपयोग कर रहे थे और फिक्स कुछ ऐसा नहीं था जो सेवा खाते पर किया जा सके। मैं अभी अटक गया हूं इसलिए मुझे उम्मीद है कि सही दिशा में धक्का मुझे ट्रैक पर लाएगा।
<?php
require_once(__DIR__. '/vendor/autoload.php');
define('CREDENTIALS_PATH', '/path/to/service_account.json');
define('SCOPES', implode(' ', array(
Google_Service_Directory::ADMIN_DIRECTORY_USER_READONLY)
));
date_default_timezone_set('America/New_York');
/**
* Returns an authorized API client.
* @return Google_Client the authorized client object
*/
function getClient() {
$client = new Google_Client();
$client->setApplicationName('TestingApp');
$client->setAuthConfig(CREDENTIALS_PATH);
$client->setScopes(SCOPES);
return $client;
}
// Get the API client and construct the service object.
$client = getClient();
$service = new Google_Service_Directory($client);
// Print the first 10 users in the domain.
$optParams = array(
'customer' => 'my_customer',
'maxResults' => 10,
'orderBy' => 'email',
);
$results = $service->users->listUsers($optParams);
if (count($results->getUsers()) == 0) {
print "No users found.\n";
} else {
print "Users:\n";
foreach ($results->getUsers() as $user) {
printf("%s (%s)\n", $user->getPrimaryEmail(),
$user->getName()->getFullName());
}
}
मेरे service_account.json
शामिल (स्पष्ट रूप से साफ)
{
"type": "service_account",
"project_id": "PROJECT_ID",
"private_key_id": "PRIVATE_KEY_ID",
"private_key": "PRIVATE_KEY",
"client_email": "SERVICE_ACCOUNT_EMAIL.iam.gserviceaccount.com",
"client_id": "CLIENT_ID",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_IDENTIFIER.iam.gserviceaccount.com"
}
इस पर किसी भी सहायता के लिए धन्यवाद:
यह परीक्षण स्क्रिप्ट मैं उपयोग कर रहा हूँ है।
इस थ्रेड में दिखाए गए अनुसार स्कीमा में उपयोगकर्ता ऑब्जेक्ट बनाने का प्रयास करें http://stackoverflow.com/questions/23767994/404-resource-not-found-domain-with-google-direcotry-api। –
वह एक उपयोगकर्ता को जोड़ रहा है, ठीक उसी मामले में नहीं, लेकिन मैंने अभी भी अनुरोध करने के लिए किसी ऑब्जेक्ट का उपयोग करने का प्रयास किया है। रुबी का एपीआई थोड़ा अलग है इसलिए मेरे पास वही तरीका नहीं था जो मैं अभी भी मुझे एक ही त्रुटि दे सकता था इसलिए मुझे लगता है कि मैंने इसे सही तरीके से किया है। मैं वर्तमान में एपीआई कोड पर जा रहा हूं यह देखने के लिए कि क्या मैं समझ सकता हूं कि इसे अपने दस्तावेज़ों से बेहतर तरीके से कैसे उपयोग किया जाए। प्रयास के लिए धन्यवाद – Jeremy