Android-приложение перестало отправлять события в Facebook Analytics - PullRequest
0 голосов
/ 10 октября 2018

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

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

Затем я попытался создать новое тестовое приложение и проверил, отправляет ли оно события в 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();
        }
    }
}

В фб: enter image description here

1 Ответ

0 голосов
/ 10 октября 2018

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

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

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

  String actName = "app: " + name;

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

...