I'm obviously missing something really obvious. If I use the standard report I can analyse the data by gender very easily. If I download the data via the API I can't find a gender field at all. I have a LOT of tables, but no field named gender (or anything close) or a field that contains gender details.

What am I missing in my understanding?

I'm using WhatsApp Cloud API Integration for our company use case and all functionality will be server-to-server API call and I have to generate a Permanent token to call the WhatsApp API to send the message. I have submitted a request to get advance access to whatsapp_business_messaging but it got rejected as we do not have any frontend UI to showcase the implementation. Facebook support team said I do not need advance access if we are implementing WhatsApp API for our own use case. We have also generated the permanent key by creating a system user from the Facebook Business dashboard but the API throws an error that this key does not have permission.

Please guide me on how can a get approval or get a permanent access token to use the WhatsApp Cloud API Integration.

Thank you in advance

We have an app with offline access_type token. Yesterday all queries were broken, because authorization failed

POST https://oauth2.googleapis.com/token 

resulted in a

400 Bad Request response: { "error": "invalid_grant", "error_description": "Bad Request" }).

We use SDK Google Ads API Client Library for PHP for any queries to API.

Code example:

// Generate a refreshable OAuth2 credential for authentication.         $oAuth2Credential = (new OAuth2TokenBuilder())->fromFile($filePathName)->build();         $loggerFactory    = new LoggerFactory();         $logger           = $loggerFactory->createLogger('TestChannel',             APPLICATION_DIRECTORY . ".log/google/adsapi.date("Y-m").".log",             'DEBUG');         // Construct a Google Ads client configured from a properties file and the         // OAuth2 credentials above.         $googleAdsClient = (new GoogleAdsClientBuilder())             ->fromFile(std::lpath($filePathName))             ->withOAuth2Credential($oAuth2Credential)             ->withLogger($logger)             ->build();         $query = "SELECT customer_client.status FROM customer_client";         $googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient();         $response               = $googleAdsServiceClient->search(             $customerId,             $query,             ['pageSize' => self::PAGE_SIZE]         );         return $response->getIterator()->current();

App is in production in google cloud console.

What have we already done:

  • changed password for account
  • reset secret and generate new refresh token

Create new app isn't good solution for us, because I think, we couldn't quickly increase limits to API (but in this moment we were forced to use an app with basic limits and quota)

Any idea how to solve this problem or how contact Google oAuth team with this question?

Related to https://groups.google.com/g/adwords-api/c/nvLa0xPkdUs/m/0P3LcxBgAQAJ

Update: I had found, that there is no link to my app in https://myaccount.google.com/permissions Anyone know, how to add this permissions again?

I'm trying to create a Facebook APP to use the WhatsApp Business Cloud API. Following this guide: https://developers.facebook.com/docs/whatsapp/cloud-api/get-started

It says: "From the App Dashboard, click on the app you would like to connect to WhatsApp. Scroll down to find the "WhatsApp" product and click Set up."

But there is no WhatsApp product at all. There are other products, but only WhatsApp is missing.

Does anyone know why it is like this?

Attached the image of the whole window. Screen Capture

I am trying to add users to the newly created audience in Google ads API but I am getting the following response from the API. I want to understand what is possibly causing this error and how to fix this?

Set<String> userList;  //this contains Hashed data(email of user that I want to upload)   List<UserDataOperation> userDataOperations = new ArrayList<>(userList.size());    for (String user : userList) {     UserDataOperation userDataOperationEmail = UserDataOperation.newBuilder().setCreate(         UserData.newBuilder()             .addUserIdentifiers(UserIdentifier.newBuilder().setHashedEmail(user).build())             .build()).build();     userDataOperations.add(userDataOperationEmail);    }