Skip to main content

Hi Team,


I am facing issue while uploading file to folder, I am having collaborator access for uploading file to a folder. My colleague has added me as collaborator (Admin) in app. When using Developer Token of that app I am able to upload file on folder, but when generating Access Token and using it to upload it gives me below error:

Error when uploading using Generated Access Token:

{

“type”: “error”,

“status”: 404,

“code”: “not_found”,

“context_info”: {

“errors”: :

{

“reason”: “invalid_parameter”,

“name”: “parent”,

“message”: “Invalid value ‘d_244280116703’. ‘parent’ with value ‘d_244280116703’ not found”

}

]

},

“help_url”: “http://developers.box.com/docs/#errors”,

“message”: “Not Found”,

“request_id”: “6sq71ghlvfufpj1r”

}


I am generating token using client credentials and authentication for my app is OAuth 2.0


Can someone tell me what is issue or what i am missing in this implementation?

Thanks

Hi @user171 , welcome to the forum.


Client Credentials Grant (CCG) has the capability of using both a service account or a user account.


With the information you sent it seems you may be using the service account which might not have access to the folder.


When you create a developer token, they are always associated with the user who created them, so that would work.


When you request a new access token for the CCG app, check to see if your are requesting for a service account or your user. For example


curl --location 'https://api.box.com/oauth2/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \

--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=<MY CLIENT ID>' \
--data-urlencode 'client_secret=<MY CLIENT SECRET>' \
--data-urlencode 'box_subject_type=enterprise' \
--data-urlencode 'box_subject_id=877840855'

Returns this:


{
"access_token": "XeF...P9",
"expires_in": 3884,
"restricted_to": [],
"token_type": "bearer"
}

Let’s check who is logged in:


curl --location 'https://api.box.com/2.0/users/me?fields=id%2Ctype%2Cname%2Clogin' \
--header 'Authorization: Bearer XeF...P9'

Results in:


{
"type": "user",
"id": "20706451735",
"name": "CCG",
"login": "AutomationUser_1803368_9rbDFPFJSf@boxdevedition.com"
}

Now let’s try the same but request a CCG access token for my user:


curl --location 'https://api.box.com/oauth2/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=<MY CLIENT ID>' \
--data-urlencode 'client_secret=<MY SECRET>' \
--data-urlencode 'box_subject_type=user' \
--data-urlencode 'box_subject_id=18622116055'

Results in:


{
"access_token": "B4...Ww",
"expires_in": 4222,
"restricted_to": o],
"token_type": "bearer"
}

Checking the logged in user:


curl --location 'https://api.box.com/2.0/users/me?fields=id%2Ctype%2Cname%2Clogin' \
--header 'Authorization: Bearer B4...Ww' \

Results in:


{
"type": "user",
"id": "18622116055",
"name": "Rui Barbosa",
"login": "myemail@gmail.com"
}

Let us know if this worked. If not then we need to check your application configurations.


Also, whenever you change a CCG application configuration you must re-submit it for administrator approval. (I always forget this one. 😉 )


Cheers


Hi @rbarbosa ,

As per your provided code sample I have tried same approach using postman, but I am unable to fetch user details with generated token, below error is encountered:


{
"type": "error",
"status": 404,
"code": "not_found",
"context_info": {
"errors": [
{
"reason": "invalid_parameter",
"name": "user",
"message": "Invalid value 'u_2'. 'user' with value 'u_2' not found"
}
]
},
"help_url": "http://developers.box.com/docs/#errors",
"message": "Not Found",
"request_id": "yciiehhlxs1i8htg"
}

Please clarify do we need approval for user created apps from Admin?

Also, is there any way to use Box API without our Admin Approval?


I think I maybe misunderstanding the situation.


Let’s try to go step by step.


When you got to the developer console, can you paste a screenshot of the configurations?


Here is mine:



And I have all the scopes selected:



Also what do you get when you hit the https://api.box.com/2.0/users/me end point?


Cheers


Sure, Please find below configurations of mine:


App Access Level: App Access Level

Below is the response of https://api.box.com/2.0/users/me end point:


{
"type": "error",
"status": 404,
"code": "not_found",
"context_info": {
"errors": [
{
"reason": "invalid_parameter",
"name": "user",
"message": "Invalid value 'u_2'. 'user' with value 'u_2' not found"
}
]
},
"help_url": "http://developers.box.com/docs/#errors",
"message": "Not Found",
"request_id": "rkpaamhlz0022co0"
}

Thanks

Jahanvi


Hi Jahanvi,


Can you share the authentication method of your app so I can try to replicate your use case?


Mine is:



Hi @rbarbosa,

Please find attached screenshot for authentication method.


Thanks

Jahanvi


Hi Jahanvi,


Something is off and I can’t identify what…


I’ve created a CCG App access only, check everything and I am able to query the current logged in user.





curl --location 'https://api.box.com/2.0/users/me?fields=id%2Ctype%2Cname%2Clogin' \
--header 'Authorization: Bearer Rd...bi'

Resulting in:


{
"type": "user",
"id": "31499781476",
"name": "CCG APP Level",
"login": "AutomationUser_2199662_F1nQzjOmkM@boxdevedition.com"
}

So I suspect you haven’t authorized the app yet…


On the top level flip to the authorization tab:


And select review and submit.


Then goto the administrator console and approve the app:


Reply