[SOLVED] Google OAuth (at least) doesn't triggered "users.*.create" event
- 0
- Users
- Accounts
- Functions

Trying to save user's data on OAuth session create fails due to users.*.create doesn't trigger on creating new user in Auth section of Appwrite. No error just execution doesn't run at all.

I'm trying to get your use-case 
Where did you set users.*.create for event triggering? 
Because if you set it only in the server then it will be erased every time you redeploy the functions
So
- Check that the trigger is indeed assigned to function in the console
- What I usauly do is to add the trigger inside the appwrite.jsonfile as such
{
  "$id"       : "FunctionID",
  "name"      : "FunctionName",
  "runtime"   : "node-16.0",
  "path"      : "functions/FunctionName",
  "entrypoint": "src/index.js",
  "ignore"    : [
    "node_modules",
    ".npm"
  ],
  "execute"   : [
    "any"
  ],
  "events"    : [
    "users.*.create"
  ],
  "schedule"  : "",
  "timeout"   : 15
}

So there's a bug: https://github.com/appwrite/appwrite/issues/2406
The reason this is challenging is our event system was built to only trigger one event per endpoint. Things get messy when we need to trigger multiple (for create oauth2, we need to trigger a session and user event). We've been talking about making changes to our event system, but the team has been really tied up with other things.

I’ve created it in Appwrite web interface, in the Settings section of my function. I’ll try you suggestions

So is there any event that createOAuth triggers?

The workaround at the moment is to trigger on session create

alright sounds good

yes, but there is not user's data so I have to make additional request to Google

It didn't help

Getting user data on create session doesn't work for some reason, I got:
    --> starting at object with constructor 'ClientRequest'
    |     property 'socket' -> object with constructor 'TLSSocket'
    --- property '_httpMessage' closes the circle
    at JSON.stringify (<anonymous>)
    at /usr/local/src/server.js:31:32
    at Array.forEach (<anonymous>)
    at console.log.console.info.console.debug (/usr/local/src/server.js:29:31)
    at module.exports (/usr/code-start/index.js:74:21)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async /usr/local/src/server.js:68:13```
My function code (part of it):
```else if (payload.provider === 'google') {
            const response = await axios.get('https://people.googleapis.com/v1/people/me?personFields=emailAddresses,names,photos', {
                responseType: 'json',
                headers: {
                    'Authorization': `Bearer ${payload.providerAccessToken}`
                }
            })
                .catch((error) => {
                    console.log('GOOGLE DATA ERROR', error);
                    res.json(error, 500);
                });
            console.log('------->>>', response)
            if (response) {
                const userData = response.data;
                console.log('USER DATA G: ', userData)
                const primaryName = userData.names.find(name => name.metadata.primary) ?? {};
                const primaryEmail = userData.emailAddresses.find(email => email.metadata.primary) ?? {};
                userProviderData = {
                    name: primaryName.displayName || `${primaryName.givenName} ${primaryName.familyName}` || 'John Doe',
                    email: primaryEmail && primaryEmail.value.toLowerCase(),
                    avatar: userData.photos.length ? userData.photos[0].url : ''
                };
            }
    }```
Probably, I missed something?

What do you mean? There's a user id so you can fetch the user and then you'll have the user data

You can't console.log response

Gotcha, thanks for the clue 🙂 missed it

Why?)

There's a circular reference. you can log some specific property, though.

[SOLVED] Google OAuth (at least) doesn't triggered "users.*.create" event
Recommended threads
- AI feature by functions?I'm creating a website where, in short, users can index certain genealogical content. In connection with the development of AI, I was thinking about introducing... 
- Unknown usage from one of my databaseI need support help. For more than 2 weeks, i didn't make any requests to my database, but I have noticed huge amount of reads and writes requests: Around 8000... 
- AppwriteException: Missing required para...I'm using node-appwrite sdk to retrive the documents. Example my code on pic, was define collectionId but error is still. Why? 
