J'ai un problème avec le Account Management API pour Facebook en milieu de travail. Tout ce que j'essaie de faire est de créer un annuaire des employés rapide et facile, qui saisit tous nos utilisateurs actifs et crache leur nom, titre, département et photos. Le problème est que les données qui reviennent ne semblent pas correspondre au schéma de base Facebook tel que vu dans le lien ci-dessus. Certaines données du schéma reviennent, mais jamais les photos, peu importe ce que je semble essayer.Facebook en milieu de travail API de gestion de compte non retour Photos
private function getEmployees()
{
$done = false;
$current_index = 1;
$current_page = 1;
$results = [];
while(!$done) {
$res = $this->client->request(
'GET',
'https://www.facebook.com/company/XXXXXXXXX/scim/Users?count=100&startIndex=' . $current_index,
[
'headers' => ['Accept' => 'application/json',
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . $this->token
]
]
);
$decoded = json_decode($res->getBody());
$total = $decoded->totalResults;
$perPage = $decoded->itemsPerPage;
if (isset($decoded->Resources)) {
$results = array_merge($results, $decoded->Resources);
if (($current_page * $perPage) >= $total) {
$done = true;
} else {
$current_page++;
$current_index += $perPage;
}
} else {
$done = true;
}
}
return $results;
}
Ce qui rend:
object(stdClass)[392]
public 'schemas' =>
array (size=3)
0 => string 'urn:scim:schemas:core:1.0' (length=25)
1 => string 'urn:scim:schemas:extension:enterprise:1.0' (length=41)
2 => string 'urn:scim:schemas:extension:facebook:starttermdates:1.0' (length=54)
public 'id' => int 10001156699923
public 'userName' => string '[email protected]' (length=21)
public 'name' =>
object(stdClass)[393]
public 'formatted' => string 'Nick P' (length=11)
public 'title' => string 'Lead PHP Engineer' (length=17)
public 'active' => boolean true
public 'phoneNumbers' =>
array (size=1)
0 =>
object(stdClass)[394]
public 'primary' => boolean true
public 'type' => string 'work' (length=4)
public 'value' => string '+1631123456' (length=12)
public 'addresses' =>
array (size=1)
0 =>
object(stdClass)[395]
public 'type' => string 'attributes' (length=10)
public 'formatted' => string 'Manhattan' (length=9)
public 'primary' => boolean true
public 'urn:scim:schemas:extension:enterprise:1.0' =>
object(stdClass)[396]
public 'department' => string 'IT' (length=2)
public 'manager' =>
object(stdClass)[397]
public 'managerId' => int 100011017901494
public 'urn:scim:schemas:extension:facebook:starttermdates:1.0' =>
object(stdClass)[398]
public 'startDate' => int 0
public 'termDate' => int 0
Comme vous pouvez le voir, il retourne d'autres domaines qui font partie du schéma « de base », mais il manque le tableau « photos » et d'autres. Je pensais que cela pourrait avoir été parce qu'un utilisateur n'avait pas de photos, mais presque tous ont des photos de profil, et beaucoup ont plus. J'ai essayé d'obtenir leurs informations d'utilisateur spécifiquement mais j'ai rencontré le même résultat, pas de photos.
Tout le monde jamais essayer quelque chose de similaire? Toute aide très appréciée, cela a été un peu un barrage routier pour nous.
Merci
J'avais l'impression que je ne pouvais pas utiliser l'API régulière graphique pour le milieu de travail? J'ai juste besoin d'une liste de tous nos employés comprenant leur nom, titre, email, photo, pas profondément l'information de profil. L'autre problème était que l'API Graph nécessitait un flux d'authentification plus strict utilisant OAuth2, qui devrait être autorisé par quelqu'un à chaque fois, ou 3 mois en utilisant un jeton à long terme. SCIM nécessite uniquement une clé dans la demande actuelle. Si Graph était disponible pour Workplace et était le seul moyen de le faire, je changerais. Mais les docs disent que les données devraient revenir avec SCIM donc je préférerais ça. –
Cette solution a fonctionné. J'ai été en mesure d'obtenir toutes les données que je voulais, sans utiliser OAuth2. Je vous remercie. –