J̌      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~8Monadic interface for communcating with the Google+ API portable provisional*Michael Xavier <michael@michaelxavier.net> IO wrapper used to compose/Csequence Google+ API actions. See Web.GooglePlus docs for examples MEnvironment passed into requests when they are executed within a GooglePlusM LRepresents authentication data with GooglePlus. Currently supports an OAuth  token or an API key kAuthenticate using a token obtianed via OAuth V2. Currently no way in the library to obtain refresh tokens  Authentication using an API key   "Types returned by the Google+ API portable provisional*Michael Xavier <michael@michaelxavier.net> ID of the article URL of the article Text content of the comments Activity comment on Google+ ID of the comment Date originally published  Date updated !The actor who posted the comment $Indicates what action was performed The content of the object URL to the comment 0The activities to which this comment is a reply  Relationship status of a Person  !"#$*A physical location where a Person resides/resided %&Whether or not this is/was the Person's primary residence 'Text description of the Place (AThe capacity in which the Perosn participated in an Organization )*+COrganization to which a Persion currently or previously may belong ,-:Department of an Organization in which the Person resided .(General description of the Organization /QDate on which the user stopped at the organization in an unspecified text format 0Location of the Organization 1Name of the Organization 2/Whether or not this Organization was the Person's primary one 3QDate on which the user started at the organization in an unspecified text format 4 The Person's role at the Organization 5The type of Organization 6Context/%types of URLS that a Person can have 78%This is not a documented value, yet I'=ve encountered it in the wild. I have no idea what it means. 9:;<=,External URLS that the Person has published >?$Whether or not the URL is the Person's primary URl @ Type of URL AActual text URl for the Person BContext/'types of Emails that a Person can have CDEF$Email address belonging to the User GH&Whether or not the Email is the Person's primary Email IType/context of the Email address J%The actual text address of the Email KImage resource on Google+ LMNMedia type of the link OPQFull, real name of a Person RSTHFully formatted name of a Person including middle names, suffixes, etc. U#The given (first) name of a Person VPrefix to a Person's name such as Dr. or Mrs. WSuffix of a Person's name such as Jr. XY%Identifier used for finding a Person ZThe authenticated user [ID for a specific user \Person' s gender ]^_`@A Person search result with limited informaiton. The full person',s profile must be retrieved to get the rest abId of the Person c)Name of the Person, suitable for display dProfile image for the Person eURL to the person' s profile fA member of Google+ ghId of the Person i)Name of the Person, suitable for display jPerson's actual, full name k Optional nickname of the Person l Brief description of the Person mPerson' s Birthday nPerson' s gender oAbout Me profile section pCurrent location of the Person qPerson's current relationship status rURL to the person' s profile sProfile image for the Person t%Email addresses that the person uses uExternal URLs on the Person' s profile v@Organizations that the Person has belonged to, past and present w%Places in which the Person has lived xLanguages the Person speaks yz6Service provider who originally published an Activity {|},Type of entity which may access an Activity ~!Access to anyone on the internet &Access granted to members of the Actor'$s circles and their circles as well *Access granted to all members of the Actor' s circles NAccessEntry that describes the type of access someone may have to an Activity LID of the entry. Only set when this AccessItem refers to a Person or Circle ;Type of entity which has access to the associated Activity 6Describes who has access to a given Activity resource 0Description of the access, suitable for display List of access entries ,Geolocation based on longitude and latitude Type of Activity Attachment 8An article attachment specified by a link by the poster LA type that occurs in the wild but is not mentioned in the Google+ API docs 3Embeddable link for an attachment if it is a video Type of embeddable link Embeddable link Media attached to an Activity 0Snippet of text if the Attachment is an article Title of the Attachment -Embeddable link if the Attachment is a video (Full image if the Attachment is a photo ID of the Attachment' s resource Preview image Type of attachment  Lin k to text/html attachment 9Types of objects that can be associated with an Activity A Google+ Activity Textual content %Object to which an activity pertains NIf the object is another Activity, this refers to the actor for that Activity /Media objects attached to this activity object ,Snipped of text if the object is an article ID of the media object' s resource Type of Object CContent text as provided by the author without any HTML formatting *Number of people giving the Activity a +1 "Number of replies to the Activity (Number of people resharing the Activity $URL pointing to the linked resource !Type of activity being performed Reshare an activity Check into a location Publish content to the stream 0A person who may be associated with an Activity %The public display name of the Actor The ID of the Actor Data pertaining to the Actor's main profile image URL of the user' s profile $Activity on Google+, such as a post Meaning undocumented Title of the activity Date originally published  Date updated  Activity ID URL to view the Activity &The person who performed the Activity $Indicates what action was performed The object of the Activity lAdditional content added by the person who shared this activity, applicable only when resharing an activity LID of original activity if this activity is a crosspost from another system 2Service provider initially providing the activity +Identifies who has access to this activity %Where the activity occurred (Latitude/ Longitude) +Street address where the activity occurred IRadius of the region where the activity ocurred, centered at the Geocode ,ID of the place where the activity occurred A feed of user activity Title of the feed in Google+  Time updated Unique ID of the feed 8Activities in the feed (currently limited to first page  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~fghijklmnopqrstuvwxy`abcdeY[Zz{|}~\_^]QRSTUVWXKLMNOPFGHIJBEDC=>?@A6<;:987+,-./012345(*)$%&'#"!      #"!  !"#$%&'%&'(*))*+ ,-./012345,-./0123456<;:987789:;<=>?@A>?@ABEDCCDEFGHIJGHIJKLMNOPLMNOPQRSTUVWXRSTUVWXY[ZZ[\_^]]^_`abcdeabcdefghijklmnopqrstuvwxyghijklmnopqrstuvwxyz{|{|}~~  $Toplevel module for the Google+ API portable provisional*Michael Xavier <michael@michaelxavier.net>4"Sort by most recent results first :Sort by relevance to the to the user, most relevant first -List of people who have reshared an activity )List of people who have +1ed an activity JSpecifies the type of Activities to get in an Activity listing. Currently  the API only allows public. .Get a person who matches the given identifier #Identifier for the person to fetch 4Get an activity which matches the given activity ID Specific ID to fetch 1Get a comment which matches the given comment ID Specific ID to fetch IGet an activity who matches the given activity ID and collection to use. < Default page size is (20) and only fetches the first page. I You will receive an error from the server if the page size exceeds 100. Feed owner ID (Indicates what type of feed to retrieve 4Page size. Should be between 1 and 100. Default 20. 'Paginating enumerator to consume a user'#s activity stream. Each chunk will L end up being an array with a single ActivityFeed in it with 1 page of data L in it. This weirdness about the chunks only containing 1 element is mostly M to maintain the metadata available on ActivityFeed and have it available in F each chunk. For a more natural chunking of just Activities if you don't need N that additional metadata, see enumActivities. Note that this Enumerator will H abort if it encounters an error from the server, thus cutting the list  short. Feed owner ID (Indicates what type of feed to retrieve 3Page size. Should be between 1 and 100. Defualt 20 GSimplified version of enumActivityFeed which retrieves all pages of an G activity feed and merges them into one. Note that this will not be as 1 efficient as enumActivityFeed in terms of memory/time because it collects N them all in memory first. Note that this should incur 1 API call per page of / results, so the max page size of 100 is used. FPaginating enumerator yielding a Chunk for each page. Use this if you  don'9t need the feed metadata that enumActivityFeed provides. Feed owner ID (Indicates what type of feed to retrieve 3Page size. Should be between 1 and 100. Defualt 20 ISimplified version of enumActivities that fetches all the activitys of a K Person first, thus returning them. Note that this should incur 1 API call ; per page of results, so the max page size of 100 is used. Feed owner ID (Indicates what type of feed to retrieve KSearch for a member of Google+. Paginating enumerator yielding a Chunk for K each page. Note that this Enumerator will abort if it encounters an error / from the server, thus cutting the list short. Search string :Optional page size. Shold be between 1 and 20. Default 10 GReturns the full result set for a person search given a search string. C This interface is simpler to use but does not have the flexibility/memory $ usage benefit of enumPersonSearch. Search string IFind people associated with a particular Activity. Paginating enumerator L yielding a Chunk for each page. Paginating enumerator yielding a Chunk for K each page. Note that this Enumerator will abort if it encounters an error / from the server, thus cutting the list short.  Activity ID -Indicates which collection of people to list =Optional page size. Should be between 1 and 100. Default 20. GReturns the full result set for a person search given a search string. C This interface is simpler to use but does not have the flexibility/memory ( usage benefit of enumPeopleByActivity.  Activity ID -Indicates which collection of people to list JSearch for an activity on Google+. Paginating enumerator yielding a Chunk O for each page. Note that this Enumerator will abort if it encounters an error / from the server, thus cutting the list short. Search string Order of search results :Optional page size. Shold be between 1 and 20. Default 10 JReturns the full result set for an activity search given a search string. C This interface is simpler to use but does not have the flexibility/memory & usage benefit of enumActivitySearch. Search string Order of search results KFind comments for an activity on Google+. Paginating enumerator yielding a L Chunk for each page. Note that this Enumerator will abort if it encounters 8 an error from the server, thus cutting the list short.  Activity ID <Optional page size. Should be between 1 and 100. Default 20 +Returns the full result set for an activity's comments. This interface is 1 simpler to use but does not have the flexibility/memory usage benefit of  enumComments.  Activity ID             !"##$%&'())*+,-./0123456789::;<=>?@ABBCDEFFGHIJKKLMNOPQRSRTUVWXXYZ[\]]^_`abcdefghijklmnoppqrstuvwxxyz{{|}~~googleplus-0.3.1.1Web.GooglePlus.MonadWeb.GooglePlus.TypesWeb.GooglePlus GooglePlusM unGooglePlusM GooglePlusEnvgpAuthGooglePlusAuth OAuthTokenAPIKey InReplyTo inReplyToId inReplyToUrl CommentObjectcommentObjectContentComment commentIdcommentPublishedcommentUpdated commentActor commentVerb commentObject commentUrlcommentActivitiesRelationshipStatus InCivilUnionInDomesticPartnershipWidowedOpenRelationshipItsComplicatedMarriedEngagedInARelationshipSinglePlace placePrimary placeValueOrganizationTypeSchoolWork OrganizationorganizationDepartmentorganizationDescriptionorganizationEndDateorganizationLocationorganizationNameorganizationPrimaryorganizationstartDateorganizationTitleorganizationType PersonURLTypeOtherURLJsonURL ProfileURLBlogURLWorkURLHomeURL PersonURLpersonUrlPrimary personUrlTypepersonURLValue EmailType OtherEmail WorkEmail HomeEmailEmail emailPrimary emailTypeemailAddressValueImageimageURL imageType imageWidth imageHeight PersonName familyName formatted givenNamehonorificPrefixhonorificSuffix middleNamePersonIDMeGender OtherGenderFemaleMalePersonSearchResult personSRIdpersonSRDisplayName personSRImagepersonSRProfileURLPersonpersonIdpersonDisplayName personNamepersonNickName personTaglinepersonBirthday personGender personAboutMepersonCurrentLocationpersonRelationshipStatuspersonProfileURL personImage personEmails personURLspersonOrganizationspersonPlacesLivedpersonLanguagesSpoken personHasAppProvider providerTitleAccessItemType PublicAccessExtendedCirclesAccessMyCirclesAccess CircleAccess PersonAccess AccessItem accessItemIdaccessItemTypeAccessaccessDescription accessItemsGeocodelatitude longitudeAttachmentTypeArticleVideo PhotoAlbumPhotoEmbed embedTypeembedUrl AttachmentattachmentContentattachmentDisplayNameattachmentEmbedattachmentFullImage attachmentIdattachmentImageattachmentType attachmentURLActivityObjectTypeGooglePlusActivityNoteActivityObjectactivityObjectActoractivityObjectAttachmentsactivityObjectContentactivityObjectIdactivityObjectTypeactivityObjectOriginalContentactivityObjectPlusOnersactivityObjectRepliesactivityObjectResharersactivityObjectURLVerbShareCheckinPostActoractorDisplayNameactorId actorImageactorUrlActivityactivityPlaceholder activityTitleactivityPublishedactivityUpdated activityId activityURL activityActor activityVerbactivityObjectactivityAnnotationactivityCrosspostSourceactivityProvideractivityAccessactivityGeocodeactivityAddressactivityRadiusactivityPlaceIdactivityPlaceName ActivityFeedactivityFeedTitleactivityFeedUpdatedactivityFeedIdactivityFeedItemsID SearchOrderByRecentBestListByActivityCollection Resharers PlusOnersActivityCollectionPublicCollection getPerson getActivity getCommentgetLatestActivityFeedenumActivityFeedgetActivityFeedenumActivities getActivitiesenumPersonSearchgetPersonSearchenumPeopleByActivitygetPeopleByActivityenumActivitySearchgetActivitySearch enumComments getCommentsLanguage.:|spanSkip maybeToParserPaginatedResourceDepaginationState NoMorePages MorePages FirstPagePaginatedActivityFeed PageTokensimpleDepaginatorperPageActivity perPageSearch unfoldListMsimpleGetFirstPage simpleGetPagesimpleDepaginationStepdepaginateActivityFeedgetFirstFeedPagegetActivityFeedPagepaginatedState eitherMaybe genericGetcollectionPath personIdPathdoGet genRequest authParamhandleResponsepackLeftwithEnv