Developers

Mostly about Wild Apricot API. Feel free to share examples of your code!

  1. Data returned in contacts/me

    Hi,
    using example PHP code and worked out that if we authenticate to the API as a user then we can retrieve the user's ID with the contacts/me call, but it returns limited data about the user. It does not return membership field values. Is there a way, when logged in as a user, to retrieve the users record including datafields?

    Just for context, I'm writing a joomla auth plugin. I want to first authenticate the user (hence using the user credentials) and once authenticated I would like to get some of the data to sync into the Joomla account…

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    3 comments  ·  API  ·  Flag idea as inappropriate…  ·  Admin →
  2. Cannot get access token after successful SSO

    I am able to obtain authorization_code from OAuthLogin, but cannot get access token from oauth.wildapricot.org with it.

    The failure occurs due to CORS although I believe I am making the request from the same origin (SSOfail_CORS.png).

    If I disable CORS, the failure behaves differently. A pop-up is shown asking for username+password (SSOfail_noCORS.png). This pop-up keeps repeating after entering valid credentials, and must eventually be canceled to continue.

    Here is the code that makes access token request:

      $.post(
    
    &quot;<a rel="nofollow noreferrer" href="https://oauth.wildapricot.org/auth/token&quot;">https://oauth.wildapricot.org/auth/token&quot;</a>,
    {
    authorization_code: code,
    client_id: &quot;xxxxxxx&quot;,
    client_secret: &quot;xxxxxxxxxxxxxxxxxxxxxxx&quot;,
    redirect_uri: &quot;<a rel="nofollow noreferrer" href="https://rbc.wildapricot.org/Schedule&quot;">https://rbc.wildapricot.org/Schedule&quot;</a>,
    scope: &quot;auto&quot;
    },
    function(data, status){
    alert(&quot;Data &quot;
    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    14 comments  ·  API  ·  Flag idea as inappropriate…  ·  Admin →

    The reason is that you pass client_id and client_secret as a form parameters, but they should be passed in Authorization header.

    API is expected to be used from server code or from standalone application. Currently JS applications are not supported. Nature of JS applications does not allow to keep secret, so any user can extract auth token from JS application. I would recommend to implement all interactions with public API using some server-side app. It can be PHP / python or even google script app.

  3. Sample C# Code With New APIKEY

        private const string AllScopes = &quot;general_info contacts finances events event_registrations account membership_levels settings&quot;;
    

    var authData = string.Format("granttype={0}&scope={1}", "clientcredentials",AllScopes);

            var response = System.Net.WebRequest.Create(Common.OAuthServiceUrl)
    
    .SetBasicAuth(&quot;APIKEY&quot;, &quot;........YOUR API KEY HERE......&quot;)
    .SetData(authData)
    .GetResponse();

    Extension Methods:

        public static WebRequest SetData(this WebRequest request, string data, string contentType = MimeFormUrlEncoded, string method = &quot;POST&quot;)
    
    {
    request.Method = method;
    request.ContentType = contentType;
    byte[] sentData = Encoding.UTF8.GetBytes(data);

    request.ContentLength = sentData.Length;
    Stream sendStream = request.GetRequestStream();
    sendStream.Write(sentData, 0, sentData.Length);
    sendStream.Close();

    return request;
    }

    public static WebRequest SetBasicAuth(this WebRequest request, string userName, string password)
    {
    var credentials = string.Format(&quot;{0}:{1}&quot;, userName, password);
    var encoded = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(credentials));
    request.Headers.Add(&quot;Authorization&quot;, &quot;Basic &quot; + encoded); …

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    1 comment  ·  API  ·  Flag idea as inappropriate…  ·  Admin →
  4. User Permissions

    I'm working with your API and I've noticed that individual members only have permission to make requests for their own contact information and the account information. I was wondering:

    Is there a way to return the users ID who has logged in rather than the ID of our WA account?

    How to we assign more permissions globally as we'd like our members to be able to view and register for events through an app we're building.

    Thanks so much.

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    2 comments  ·  API  ·  Flag idea as inappropriate…  ·  Admin →

    1. If you access API using contact’s credentials, then you can use /v2/accounts/XXX/contacts/me request to get current user’s information, including his ID.

    2. There is no way to give more permissions to contacts/members. However, if you are building web application, which runs in trusted environment, you can make some API requests using API key rather than contact credentials. When you access API with API key, then you have full permissions to events and event registrations.

  5. Joomla authentication plugin?

    Hi,
    wondering if anyone has used the new signon stuff in the API to create a Joomla authentication module? I've written a Joomla Authentication module to use a third party (database) source for users and would like to change update it to use WildApricot as the backend for authentication. Thinking about paying a developer to update the plugin but before doing so wondered if anyone else has done this?

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    0 comments  ·  Flag idea as inappropriate…  ·  Admin →
  6. Please help with API version 1 to API version 2

    I am part of a voluntary organization and we received an e-mail about updating to API version 2 and same changes that needed to be made. We are all in way over our head and I just took over the website management this week. I would appreciate any and all help.

    We don't even know if we are using API. I will do anything I need to do but I really need help. Again, I am not paid this is for a completely voluntary organization.

    Thanks,

    Bradley Bearden

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    2 comments  ·  API  ·  Flag idea as inappropriate…  ·  Admin →
  7. Database update via API returns "State":"Waiting","InitialQuery"

    I use a cron job to hit the API a few times a day, sometimes I get a blank result and this is what is returned:

    Any idea why this happens ?? I am not requesting the API every second. It is literally twice a day ??

    {"ResultId":XXX"","ResultUrl":"https:\/\/api.wildapricot.org\/v1\/accounts\XXX\/Contacts\/?resultId=XXX","Requested":"2015-07-26T22:56:05.057","State":"Waiting","InitialQuery":{"ObjectType":"Contact","FilterExpression":null,"SelectExpression":null}}

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    4 comments  ·  API  ·  Flag idea as inappropriate…  ·  Admin →
  8. 1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    1 comment  ·  API  ·  Flag idea as inappropriate…  ·  Admin →
  9. Single Sign On server error

    Trying to implement SSO, but just getting 'an error has ocurred'

    URL is https://melbournerebels.wildapricot.org/sys/login/OAuthLogin?clientid=4wq28ex9ox&redirecturi=http%3A%2F%2Flocalhost%3A3000&scope=contacts_me

    The redirect_uri has been added to the whitelist, and the error telling me to contact myself isn't helping much :)

    2 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    5 comments  ·  API  ·  Flag idea as inappropriate…  ·  Admin →
  10. API V2 authorization error using APIKEY

    As far as I can tell, APIKEY authorization according to:
    http://help.wildapricot.com/display/DOC/API+V2+authentication
    is broken.

    This example:

    POST /auth/token HTTP/1.1

    Host: oauth.wildapricot.org
    
    Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    Content-Type: application/x-www-form-urlencoded

    granttype=clientcredentials&scope=contacts finances events

    simply doesn't work, always returning a "scope xxxx is not available for current client" for every scope I've tried (from the table on the same page).

    Is this just completely broken, or something is missing. I note that there is no place in the API for the "application name". I also note that I don't get an "authorization error", as I would get if I use an incorrect base64-encoded API…

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    2 comments  ·  Flag idea as inappropriate…  ·  Admin →
  11. API V2 "invalid_scope" error

    Multiple attempts at setting the "scope" param (contactsview, eventsview, contacts, etc) all return the same error:
    {"error":"invalidscope","errordescription":"Scope 'eventsview\n' is not available for current client.","erroruri":null}

    My client was created with "read only" access. Shouldn't this work?

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    4 comments  ·  API  ·  Flag idea as inappropriate…  ·  Admin →
  12. API changes in 5.4 (action may be required before July 6th)

    In Version 5.4, which was just released on June 15th, Wild Apricot has made changes to the authentication process https://help.wildapricot.com/display/DOC/API+V2+authentication for its API. We have moved from account-based authentication to the more secure application-based authorization. Instead of generating a single API key that provides complete access to your entire Wild Apricot account, you authorize individual applications, each of which are assigned separate credentials. If you've previously generated an API key for your account – prior to the 5.4 release – it will automatically be converted to an authorized application called Legacy API key.
    If you are currently using an API…

    0 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    Resolved  ·  0 comments  ·  API  ·  Flag idea as inappropriate…  ·  Admin →
  13. Creating Bundles with API

    All was going very well with the API V2 until I wanted to set up Bundles with the membership. I can create contacts and assign a membership level. But when I try to assign a create a Bundle Administrator or Bundle Member, nothing seems to take. The API says only a Bundle ID and NOT an email address like the Import can use. To automate this process, I don't/can't use the Import process.

    Has anyone been successful in using the API to create a Bundle? (Administrator and/or Member)

    Any help is greatly appreciated. Our trial is almost over and this…

    2 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    6 comments  ·  API  ·  Flag idea as inappropriate…  ·  Admin →

    Now it is possible.

    Step by step:
    1. Create bundle admin
    2. As a result of POST operation you will get a json of new contact.
    So find a record in FieldValues with “FieldName”: “Bundle ID” and take “Value” from that record.
    3. Create a bundle member
    4. Check we have a bundle and it contains members we expect

    Here is a complete description with requests you should send: https://gist.github.com/DmitriySmirnov/8b29429d75e9b66eef9c88d4a647a3e8

  14. API V2 help creating or updating fields

    I am evaluating Wild Apricot for a small non-profit. We are all volunteers who will be administering it, so I am investigating using the API to automate our workflow due to the fact that WA does not create a Contact for Guest registrations.

    My question is related to the Create Contact or Update Contact operations. I can create a contact with the FirstName, LastName and Email fields and I can update those fields. However, I have been unsuccessful adding or creating additional fields, even the Phone built in field.

    Can anyone help by sending me an example of the syntax…

    1 vote
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    3 comments  ·  API  ·  Flag idea as inappropriate…  ·  Admin →
  15. API V2 authentication and sample routines in Python

    Hi,

    I'm trying to integrate my Wild Apricot database into a standing Python program. If somebody has already written the V2 API authentication and some routines in Python, can they share so I can leverage?

    Thanks in advance.

    0 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    3 comments  ·  API  ·  Flag idea as inappropriate…  ·  Admin →
  16. API call to create (POST) invoices

    I would like to be able to create (POST) invoices via API.

    This feature would help us when when we need to generate invoices for a many members. That payments can already be created via API is useful. The feature for Invoices that I am requesting would seem to complement the existing feature for Payments.

    9 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    2 comments  ·  API  ·  Flag idea as inappropriate…  ·  Admin →
  17. API: Get list of contacts by saved search

    Wanting to get some feedback if I am doing this correctly or there is a better way!

    Goal: I have 13 SavedSearches and I want to create 13 separate Google SS (using Google Script) with the details of members (some custom fields I have created as well) returned by each SavedSearch.

    Step 1: I use the api SavedSearch request to return the contactIds.

    Step 2: Iterate through the returned list and make an api call to contacts using the contactId.

    Here is the problem I am encountering. The limit on individual contact calls is 60 / minute. All my searches…

    0 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    5 comments  ·  API  ·  Flag idea as inappropriate…  ·  Admin →
  18. Contacts API v2 $select doesn't provide MembershipLevel

    I found that when using $select on the contacts API call in V2, the MembershipLevel field is not available. It is available however if all fields are returned by not using $select

    Is this by design, or an oversight?

    I am using the sample PHP code.

    0 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    Resolved  ·  1 comment  ·  API  ·  Flag idea as inappropriate…  ·  Admin →
  19. Javascript access to Contact/Member/Event data

    I would love to have data available to JavaScript that can be used to access other contact, membership, or event data that may not be available on a page or widget.

    For instance, I have a case where I need to display links based on whether they belong to a certain membership group or membership level.

    There is some 'BONAPAGE' global variables that can be accessed for system or page view status but nothing for the record of the current screen you may be viewing.

    It would be great if there was a global object(s) available that contained the current…

    9 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    54 comments  ·  Flag idea as inappropriate…  ·  Admin →

    Public API is now available for javascript access by path http://your_account.wildapricot.org/sys/api/….

    This means that:

    • AJAX requests to API is in the same domain
      *JS application is able to access API without token
    • AJAX requests directed to the same domain as
    • JS access API with the same permissions as currently logged in user.

    Please read more on help site:
    http://help.wildapricot.com/display/DOC/Authenticating+API+access+from+a+Wild+Apricot+site+page

  20. Getting Support for the WA V2 API?

    Hi - looking through recent posts in the forum regarding usage of the WA API V2 I get the impression that the API is basically unsupported by WA. e.g. two API issues I posted some days ago remain unanswered and a recent API V2 question from another user (GeePawHill) also remains without any replies.

    So a basic question - do WA staff support the API through this forum? If not can anyone at WA advise what other avenues are available in order to get support for the API? e.g. should we be submitting API issues via the support channel? (email)…

    0 votes
    Sign in
    (thinking…)
    Sign in with: Facebook Google
    Signed in as (Sign out)

    We’ll send you updates on this idea

    2 comments  ·  API  ·  Flag idea as inappropriate…  ·  Admin →
  • Don't see your idea?

Developers

Categories

Feedback and Knowledge Base