Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to use courses.courseWork.addOnAttachments resource? #3529

Open
MuhamadIsmuaji opened this issue Jul 29, 2024 · 8 comments
Open

How to use courses.courseWork.addOnAttachments resource? #3529

MuhamadIsmuaji opened this issue Jul 29, 2024 · 8 comments
Labels
priority: p3 Desirable enhancement or fix. May not be included in next release. type: question Request for information or clarification. Not an issue.

Comments

@MuhamadIsmuaji
Copy link

MuhamadIsmuaji commented Jul 29, 2024

Hello everyone may I ask how I can use courses.courseWork.addOnAttachments resource with this lib? I've installed the lib with yarn install googleapis with version 140.0.1 or yarn install @googleapis/classroom with version 4.0.9. But somehow I can't use like google.classroom({ version: 'v1' }).courses.courseWork.addOnAttachments.create() ? I've see in this repo there is addOnAttachments in this code . But somehow when I've install the lib, I can't find that code

@MuhamadIsmuaji MuhamadIsmuaji added priority: p3 Desirable enhancement or fix. May not be included in next release. type: question Request for information or clarification. Not an issue. labels Jul 29, 2024
@lukesanborn
Copy link

I'm having the same problem too. Google API clients are automatically generated from a discovery JSON file. Google must periodically re-generate each client library and push to the respective package manager, npm, pypi etc. For example, the Python client API was regenerated a few weeks ago and includes Google Classroom Add-on functionality. The nodejs client library has not been regenerated with these new classroom changes. I've found a workaround to get these working locally if you're interested.

Google if you are seeing this, please update the npm package 🙏

@MuhamadIsmuaji
Copy link
Author

I'm having the same problem too. Google API clients are automatically generated from a discovery JSON file. Google must periodically re-generate each client library and push to the respective package manager, npm, pypi etc. For example, the Python client API was regenerated a few weeks ago and includes Google Classroom Add-on functionality. The nodejs client library has not been regenerated with these new classroom changes. I've found a workaround to get these working locally if you're interested.

Google if you are seeing this, please update the npm package 🙏

Hi @lukesanborn thanks for the response. Yep I'm interested for how it can working locally, could you please let me know?

@lukesanborn
Copy link

Workaround steps:
Clone git repo -> google-api-nodejs-client/generator.md at main · googleapis/google-api-nodejs-client (github.com)
cd google-api-nodejs && npm i
** important check to make sure you have the right discovery file

node build/src/generator/generator.js 'https://classroom.googleapis.com/$discovery/rest' \ --include-private false \ --use-cache false

After generating the API, install the package
cd src/apis/classroom
Npm i && npm pack
That should create “googleapis-classroom-4.0.9.tgz”
Then move the file to your source code
Add this line to the package. json file
"classroom-with-addon": "file:./googleapis-classroom-4.0.9.tgz",
Run npm i and now should work :)))

@MuhamadIsmuaji
Copy link
Author

MuhamadIsmuaji commented Jul 29, 2024

Also @lukesanborn maybe you know about this problem as well, I've try to issue request using Axios. Somehow I always got error below
{ "error": { "code": 403, "message": "@ProjectPermissionDenied The Developer Console project is not permitted to make this request.", "status": "PERMISSION_DENIED" } }

So what I've done is try to create attachment with issue POST request with Axios to https://classroom.googleapis.com/v1/courses/${courseId}/courseWork/${itemId}/addOnAttachments. I use axios config headers below

headers: { "Content-Type": "application/json", Authorization:Bearer ${accessToken}, },
I use OAuth 2.0 credentials and I've make sure all scopes already configured

@MuhamadIsmuaji
Copy link
Author

Btw thanks for the workaround steps @lukesanborn , let me try it

@lukesanborn
Copy link

lukesanborn commented Jul 29, 2024

Have you enabled the Google Classroom API in the Cloud console? @MuhamadIsmuaji

@MuhamadIsmuaji
Copy link
Author

Yes @lukesanborn , Google Classroom API already enabled. Additional information, I can issue GET request with Axios with same config to https://classroom.googleapis.com/v1/courses

@lukesanborn
Copy link

@sofisl When will the package be updated on npm?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority: p3 Desirable enhancement or fix. May not be included in next release. type: question Request for information or clarification. Not an issue.
Projects
None yet
Development

No branches or pull requests

2 participants