Hi,
Has someone a working example accessing MS Graph API with yii?
MS offers a example for laravel (including callback function etc.):
Best regards,
Toby
Hi,
Has someone a working example accessing MS Graph API with yii?
MS offers a example for laravel (including callback function etc.):
Best regards,
Toby
Hello,
Are you trying to accomplish anything specific with the MS Graph API? I have used it fairly extensively. Im not sure if im using it in the most optimal way, but here is what I have:
Inside my own custom class I have a function to get all the users in a AD group:
public function getGroupUsers($groupID, $nextUrl = null) {
  $token = $this->_token();
   if ($token) {
     $graph = new Graph();
     $graph->setAccessToken($token);
     if ($nextUrl) {
      $url = $nextUrl;
     } else {
      $url = "https://graph.microsoft.com/v1.0/groups/$groupID/members";
     }
     $data = $graph->createRequest("GET", $url)
                  // ->setReturnType(Model\Group::class)
                   ->execute();
    }
    $next = $data->getBody()['@odata.nextLink'] ?? null;
    foreach ($data->getBody()['value'] as $key => $val) {
      $users[] = ['email' => strtolower($val['mail']), 'name' => $val['displayName']];
    }
    if($next && $next !== ''){
      $users = array_merge($users,($this->getGroupUsers("0",$next)));
    }
    return $users;
}
Inside my class I have functions to handle the token, I have this:
 private function _token(){
  try {
    $requestParms = ['form_params' => [
                      'client_id' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx',
                      'client_secret' => ':-)R|;F?HZ|Sk_}z@',
                      'resource' => 'https://graph.microsoft.com/',
                      'grant_type' => 'client_credentials',
                    ]];
    $requestURL = "https://login.microsoftonline.com/e660f793-4f40-4860-9845-5f588dfa220f/oauth2/token?api-version=1.0";
    $client = new GuzzleRetryClass();
    $response = $client->test($requestParms, $requestURL, ['timeout' => 3]);
    if (isset($response["access_token"])) {
      return $response["access_token"];
    } else {
      return false;
    }
  }
    catch (\Exception $e) {
          \Yii::error(print_r($e->getMessage(), true));
          return false;
  }
 }
 public function getToken(){
   return $this->_token();
 }
Then I can use my custom class like this:
$groupMembers = new MyCustomClass();
$members = $groupMembers->getGroupUsers("3e465b74-9460-4ac1-bbd6-79cb59ba521d"); // The ID of the group