Sample code for 30+ languages & platforms
Zig Requires Chilkat v11.5.0+

Box: Identify the User Behind an Access Token

See more Box Examples

Identify the account whose permissions and root folder the token uses. Start here when an app cannot see files visible in a personal Box account.

See the Box API guide for setup and the complete workflow.

Chilkat Zig Downloads

Zig
const std = @import("std");
const chilkat = @import("chilkat");

pub fn main(init: std.process.Init) !void {
    const alloc = init.arena.allocator();

    var success: bool = false;

    // Requires Chilkat 11.5.0 or later and a previously unlocked Chilkat bundle.
    // See Global Unlock Sample.
    // Guide: Box API Guide.

    success = false;

    // Supply an unexpired token obtained with one of the Box authentication examples.
    // A token represents a particular user or service account. IDs must be accessible to it.
    const curl = try chilkat.HttpCurl.init();
    defer curl.deinit();
    curl.setVar("access_token", "BOX_ACCESS_TOKEN");

    curl.clearTargetOutput("*");
    const authorized_command1 = try chilkat.StringBuilder.init();
    defer authorized_command1.deinit();
    authorized_command1.setString("curl -X GET \"https://api.box.com/2.0/users/me?fields=id,name,login\" -H \"Authorization: Bearer {{access_token}}\"") catch {};
    _ = authorized_command1.replace("{{access_token}}", try curl.getVar(alloc, "access_token"));
    success = if (curl.doYourThing(try authorized_command1.getAsString(alloc))) true else |_| false;
    if ((!success) or (curl.getStatusCode() != 200)) {
        std.debug.print("Box request failed. HTTP status: {d}\n", .{curl.getStatusCode()});
        std.debug.print("Failure reason: {d}\n", .{curl.getFailReason()});
        std.debug.print("{s}\n", .{try curl.getResponseBodyStr(alloc)});
        return;
    }

    std.debug.print("{s}\n", .{try curl.getResponseBodyStr(alloc)});
}