Android-приложение перестало отправлять события в Facebook Analytics

Извините, если мой английский не очень хорош!

Кто-нибудь сталкивался с проблемой, связанной с событиями fb? У меня есть приложение на Android, которое опубликовано в Google Play. Недавно я обновил его, а затем обнаружил, что мое приложение перестало отправлять какие-либо события в Analytics. Мои изменения не были связаны с Facebook SDK. Я просто изменил код, касающийся логики работы некоторых кнопок.

Затем я попытался создать новое тестовое приложение и проверил, отправляет ли оно события в Google Analytics. Сначала это сработало, но через несколько минут возникла та же проблема. Следующий день был таким же... Я не видел никаких событий в аналитике. Я проверил шаги интеграции SDK в приложении, все правильно.

При запуске приложения возникает ошибка в журналах:

11556-11580/com.pattern.eventstest E/GraphResponse: {HttpStatus: 400, errorCode: 100, subErrorCode: 33, errorType: GraphMethodException, errorMessage: Unsupported get request. Object with ID '147657836189003' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api}

Но, если я правильно понимаю, это из-за приложений с кнопкой авторизации fb, но я не использую это в своем приложении.

В Gradle я пытался реализовать 'com.facebook.android:facebook-android-sdk:4.36.0' а также 'com.facebook.android:facebook-android-sdk:[4,5)', оба не работают.

У кого-нибудь есть идея, что такое счастье?

Gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.pattern.eventstest"
        minSdkVersion 15
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    implementation 'com.android.support:appcompat-v7:27.0.2'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'junit:junit:4.12'
    implementation 'com.facebook.android:facebook-android-sdk:[4,5)'
    implementation group: 'commons-codec', name: 'commons-codec', version: '1.11'
    implementation 'org.jsoup:jsoup:1.10.3'
}

Манифест:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.pattern.eventstest">

    <uses-permission android:name="android.permission.INTERNET"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
    </application>

</manifest>

Строки:

<resources>
    <string name="app_name">Events Test</string>
    <string name="facebook_app_id">147657836189003</string>
    <string name="fb_login_protocol_scheme">fb147657836189003</string>
</resources>

MainActivity:

package com.pattern.eventstest;

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.facebook.appevents.AppEventsLogger;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        fbAppEvent(this, "onCreate");
    }
    public static void fbAppEvent(Context context, String name) {
        String actName = "app: " + name;
        try {
            AppEventsLogger logger = AppEventsLogger.newLogger(context);
            logger.logEvent(actName);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

В фб:

1 ответ

Решение

Убедитесь, что имя вашего события соответствует следующему регулярному выражению:

/^[0-9a-zA-Z_][0-9a-zA-Z _-]{0,39}$/

В частности, у вас есть ошибка здесь:

  String actName = "app: " + name;

Колон не допускается. Также позвольте мне рекомендовать использовать перечисление для обозначения различных действий для вашего приложения, а не строки. Имейте в виду, что вы можете отправить до 1000 имен пользовательских событий для каждого приложения.

Другие вопросы по тегам