function getMeetupMember($idOrArray, $type)
{
    global $meetup_api_key;
    if (is_array($idOrArray)) {
        $response = $idOrArray;
        $meetup_id = $idOrArray["id"];
    } else {
        $client = DMS\Service\Meetup\MeetupKeyAuthClient::factory(array('key' => $meetup_api_key));
        $response = $client->getMember(array('id' => $idOrArray));
        $meetup_id = $idOrArray;
    }
    switch ($type) {
        case "profile":
            $epoch = $response["joined"];
            $epoch = substr($epoch, 0, -3);
            $dt = new DateTime("@{$epoch}");
            $date = $dt->format('Y-m-d');
            $data = array("meetup_id" => $response["id"], "location" => $response["city"], "joined" => $date, "meetup_url" => $response["link"], "lat" => $response["lat"], "lon" => $response["lon"]);
            if (isset($response["photo"]["highres_link"])) {
                $data["photo_url"] = $response["photo"]["highres_link"];
            } elseif (isset($response["photo"]["photo_link"])) {
                $data["photo_url"] = $response["photo"]["photo_link"];
            } elseif (isset($response["photo"]["thumb_link"])) {
                $data["photo_url"] = $response["photo"]["thumb_link"];
            } else {
                $email = strtolower($meetup_id . "@gmail.com");
                $data["photo_url"] = "http://www.gravatar.com/avatar/" . md5($email);
            }
            foreach ($response["other_services"] as $key => $service) {
                $data[$key . "_url"] = $service["identifier"];
            }
            return $data;
            break;
        case "skills":
            $skills = array();
            $user_skills = array();
            foreach ($response["topics"] as $topic) {
                array_push($skills, array("meetup_skill_id" => $topic["id"], "name" => $topic["name"], "slug" => $topic["urlkey"]));
                array_push($user_skills, array("skill_id" => $topic["id"], "meetup_id" => $meetup_id));
            }
            return array("skills" => $skills, "user_skills" => $user_skills);
            break;
        case "user":
            $data = array("meetup_id" => $response["id"], "name" => $response["name"], "mailchimp_euid" => null, "email" => null);
            return $data;
        case "object":
            return $response;
            break;
        default:
            die("Add a {$type} to getMeetupMember!");
    }
}
Example #2
0
<?php

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/
Route::get('demo/{group_urlname}', function ($group) {
    $client = DMS\Service\Meetup\MeetupKeyAuthClient::factory(['key' => env('MEETUP_API_KEY')]);
    $members = $client->getMembers(['group_urlname' => $group, 'fields' => 'bio']);
    $members = $members->toArray();
    // dd($membersArray[0]);
    return view('members', ['members' => $members, 'group' => $group]);
});
Route::get('/', function () {
    return view('welcome');
});
Route::get('about', 'PagesController@about');
Route::get('posts/create', 'PostsController@create');
Route::post('posts/create', 'PostsController@store');
Route::get('posts/{id}/{slug}', function ($id, $slug) {
    $post = App\Post::find($id);
    if ($post && $post->slug === $slug) {
        return $post;
    }
});
<?php

require_once '../modules/prettyprint.php';
require_once '../vendor/autoload.php';
require_once '../config.php';
require_once 'init.php';
ini_set('max_execution_time', 10000);
$client = DMS\Service\Meetup\MeetupKeyAuthClient::factory(array('key' => $meetup_api_key));
$i = 0;
$options = array('group_urlname' => 'Geo-Developers', 'page' => 200, 'order' => 'name', 'offset' => $i);
$GeodevDB = new GeodevDB();
do {
    $members = $client->getMembers($options);
    foreach ($members as $member) {
        $user = $GeodevDB->getUser(array("type" => "user", "meetup_id" => $member["id"]));
        if (!$user) {
            $m = new Member(array("meetup_response" => $member));
            echo $m->meetup_id . " is not registered, add or update all fields<br>";
            $m->save();
        }
    }
    $i++;
    $options["offset"] = $i;
} while ($members->count() != 0);
 public function loadFromMeetup($meetup_response = NULL)
 {
     global $meetup_group_id, $meetup_group_urlname, $meetup_api_key;
     $client = DMS\Service\Meetup\MeetupKeyAuthClient::factory(array('key' => $meetup_api_key));
     if (!$meetup_response) {
         $response = $client->getMember(array('id' => $this->meetup_id));
     } else {
         $response = $meetup_response;
     }
     $this->name = $response["name"];
     $this->meetup_id = $response["id"];
     $this->location = $response["city"] . ", " . $response["country"];
     $this->meetup_url = $response["link"];
     $this->lat = $response["lat"];
     $this->lon = $response["lon"];
     $this->name = $response["name"];
     if (isset($response["photo"])) {
         if (isset($response["photo"]["highres_link"])) {
             $this->photo_url = $response["photo"]["highres_link"];
         } elseif (isset($response["photo"]["photo_link"])) {
             $this->photo_url = $response["photo"]["photo_link"];
         } elseif (isset($response["photo"]["thumb_link"])) {
             $this->photo_url = $response["photo"]["thumb_link"];
         }
     } elseif (isset($response["photo_url"])) {
         $this->photo_url = $response["photo_url"];
     } else {
         $email = strtolower($this->meetup_id . "@gmail.com");
         $this->photo_url = "http://www.gravatar.com/avatar/" . md5($email);
     }
     if (isset($response["other_services"]) && is_array($response["other_services"])) {
         foreach ($response["other_services"] as $key => $service) {
             $s = $service["identifier"];
             switch ($key) {
                 case "twitter":
                     $this->twitter_url = $s;
                     break;
                 case "flickr":
                     $this->flickr_url = $s;
                     break;
                 case "facebook":
                     $this->facebook_url = $s;
                     break;
                 case "linkedin":
                     $this->linkedin_url = $s;
                     break;
             }
         }
     }
     $service = new Skill();
     if (isset($response["topics"]) && is_array($response["topics"])) {
         foreach ($response["topics"] as $topic) {
             $s = $service->find(array("meetup_skill_id" => $topic["id"]));
             if ($s) {
                 $this->skills[$s["id"]] = $s;
             } else {
                 $this->skills["new_" . $topic["id"]] = array("meetup_skill_id" => $topic["id"], "is_gis" => 0, "synonyms" => NULL, "name" => $topic["name"], "slug" => $topic["urlkey"]);
             }
         }
     }
     $options = array('group_urlname' => $meetup_group_urlname, 'group_id' => $meetup_group_id, 'member_id' => $this->meetup_id);
     $profiles = $client->getProfiles($options);
     if ($profiles->count() > 0) {
         // Find relevant skills in open answers and add them to the profile
         foreach ($profiles as $p) {
             $answers = "";
             foreach ($p["answers"] as $a) {
                 if (isset($a["answer"])) {
                     $answers .= $a["answer"] . " ";
                 }
             }
             $answers = strtolower($answers);
             $r = $service->extractRelevantSkills($answers);
             $this->merge_skills($r);
             //When user joined
             $this->joined = $this->parseEpoch($p["created"]);
             $this->last_visit = $this->parseEpoch($p["visited"]);
             if (isset($p["bio"])) {
                 $this->bio = $p["bio"];
             }
             if (isset($p["photo"])) {
                 if (isset($p["photo"]["highres_link"])) {
                     $this->photo_url = $p["photo"]["highres_link"];
                 } elseif (isset($p["photo"]["photo_link"])) {
                     $this->photo_url = $p["photo"]["photo_link"];
                 } elseif (isset($p["photo"]["thumb_link"])) {
                     $this->photo_url = $p["photo"]["thumb_link"];
                 }
             } elseif (isset($p["photo_url"])) {
                 $this->photo_url = $p["photo_url"];
             }
             if (isset($p["profile_url"])) {
                 $this->meetup_url = $p["profile_url"];
             }
             //TODO: check if other services
         }
     }
 }