Coder Social home page Coder Social logo

danvratil / fbeventsync Goto Github PK

View Code? Open in Web Editor NEW
35.0 35.0 7.0 1.12 MB

Sync Facebook Events into your Android calendar

License: GNU General Public License v3.0

Java 14.40% Shell 0.32% Kotlin 85.28%
android android-calendar app calendar event-sync facebook facebook-event kotlin kotlin-android sync

fbeventsync's People

Contributors

adel03111989 avatar benbb96 avatar burunduk avatar coderbm1 avatar comradekingu avatar danvratil avatar floedelmann avatar fooftilly avatar forcemagic avatar harryheights avatar leela52452 avatar louies0623 avatar mansil avatar marciozomb13 avatar milotype avatar nathanbnm avatar poussinou avatar santossi avatar vistaus avatar wastlde avatar weblate avatar withlovee avatar wtuemura avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fbeventsync's Issues

Not attending events not syncing

I've marked some events that I'm not attending, but it's not removing it from my calendar. I've manually synced my calendar and the app.

Galaxy S9 on 8.0

Handle expiration of iCal key

When the key expires (because user changes their password or changes some security policy), we need to detect it and retrieve a new key.

When the key expires, we get following response from the iCal:

HTTP/2 200 
x-frame-options: DENY
x-xss-protection: 0
access-control-allow-credentials: true
access-control-allow-origin: https://www.facebook.com
access-control-expose-headers: X-FB-Debug, X-Loader-Length
pragma: no-cache
vary: Origin
access-control-allow-methods: OPTIONS
strict-transport-security: max-age=15552000; preload
x-content-type-options: nosniff
expires: Sat, 01 Jan 2000 00:00:00 GMT
cache-control: private, no-cache, no-store, must-revalidate
vary: Accept-Encoding
content-type: text/html; charset=UTF-8
x-fb-debug: ivin+/XktvmHiy0n2XupcR4U1ZwIBbNTYEcFNFXu8t6Q3gyJyBEYQCG+d5Ki3gVsj3Nu7ehC72vkNTVqt0Q6AA==
date: Mon, 05 Mar 2018 22:15:55 GMT

Sorry, this URL is invalid or has expired.

The message in the response body is localized, so we can't use that. However the content-type header is different (text/html vs text/calendar for valid iCal) and content-disposition header is missing.

Shared Calendars and Confirmed Events

This is not a bug but a potential design/enhancement discussion :-)

So, myself and my wife share our calendars. If I've flagged an event as something we're going to it doesn't appear in my personal calendar on the web interface on my computer which means her share of my calendar does not see it. Which leads to double booking ;-)

So while the application works perfectly on a single phone I'm wondering whether there could be a way to persist certain categories (e.g. Events Going To, Events Interested In) into a specified calander therebye allowing cross-device usage/syncing.

Sync Error

I am getting sync error. I can't copy/paste the error but I do have a screen shot. Please fix ASAP .

F-Droid inclusion

Hi,

Since this app is GNU GPL v3 licensed, are you considering the fact to add it to F-Droid? There is a strong community behind.

You can find some documentation here.

Otherwise, if you don't want to work on the inclusion of this app by yourself, would it be ok for you if someone else do it for you?

Enable calendar slider not accessible

I have a bug concerning the calendars I choose to enable. It seems the
enabled button is locked and can't be reached for all calendars (events I'm
attending e.t.c)
[...]
I use LG G4 android 6.0.

Check the possibility that events don't sync with zh_TW locale

Could be an encoding issue in the library or a broken iCal from Facebook. However the birthdays seem to sync just fine...

2018-09-28 09:56:32.218 D/FBCalendar: Calendar Events I'm Attending is enabled? true
2018-09-28 09:56:32.335 D/FBCalendar: Calendar Events I May Be Attending is enabled? true
2018-09-28 09:56:32.422 D/FBCalendar: Calendar Events I'm not Attending is enabled? true
2018-09-28 09:56:32.480 D/FBCalendar: Calendar Events I have not Responded To is enabled? true
2018-09-28 09:56:32.559 D/FBCalendar: Calendar Friends' Birthdays is enabled? true
2018-09-28 09:56:32.815 D/SYNC: Syncing event iCal from https://www.facebook.com/ical/u.php?uid=hidden&key=hidden&locale=zh_TW
2018-09-28 09:56:33.674 D/SYNC: iCal sync done
2018-09-28 09:56:33.674 I/FBCalendar: Sync stats for Events I have not Responded To
2018-09-28 09:56:33.675 I/FBCalendar:     Events added: 0
2018-09-28 09:56:33.675 I/FBCalendar:     Events modified: 0
2018-09-28 09:56:33.675 I/FBCalendar:     Events removed: 0
2018-09-28 09:56:33.676 I/FBCalendar: Sync stats for Events I'm not Attending
2018-09-28 09:56:33.676 I/FBCalendar:     Events added: 0
2018-09-28 09:56:33.677 I/FBCalendar:     Events modified: 0
2018-09-28 09:56:33.677 I/FBCalendar:     Events removed: 0
2018-09-28 09:56:33.677 I/FBCalendar: Sync stats for Events I May Be Attending
2018-09-28 09:56:33.678 I/FBCalendar:     Events added: 0
2018-09-28 09:56:33.678 I/FBCalendar:     Events modified: 0
2018-09-28 09:56:33.678 I/FBCalendar:     Events removed: 0
2018-09-28 09:56:33.678 I/FBCalendar: Sync stats for Events I'm Attending
2018-09-28 09:56:33.679 I/FBCalendar:     Events added: 0
2018-09-28 09:56:33.679 I/FBCalendar:     Events modified: 0
2018-09-28 09:56:33.679 I/FBCalendar:     Events removed: 0
2018-09-28 09:56:33.737 D/SYNC: Syncing birthday iCal from https://www.facebook.com/ical/b.php?uid=hidden&key=hidden&locale=zh_TW
2018-09-28 09:56:42.569 D/SYNC: iCal sync done
2018-09-28 09:56:44.266 I/FBCalendar: Sync stats for Friends' Birthdays
2018-09-28 09:56:44.267 I/FBCalendar:     Events added: 0
2018-09-28 09:56:44.268 I/FBCalendar:     Events modified: 66
2018-09-28 09:56:44.269 I/FBCalendar:     Events removed: 0

"Invite friends" feature

From #30:

Regarding inviting friends, there is no proper way to get the list of all your friends from Facebook (Facebook will only show me your friends who are also using the app, which is not that many I guess smiley). But now that I think about it, I see a way how I could abuse the birthday calendar to use it as your friend list. To invite them, I could add "Invite your friends" link to the description that would open the app and would let you choose whom to invite.

This plan has one big flaw - not everyone publishes their birthday on Facebook, so even the birthday calendar would not provide a full friend list. I could try to look into how SocialFixer scrapes the friend list and could retrieve it as part of regular sync (or from time to time) and just keep it cached locally. Other option is to try to some page on mobile version of Facebook that has the friends and that we could scrape.

Once solved, the solution is rather simple: just insert a custom link (fbevensync://invite?eventId=X) to each event and register ourselves as a handler. Tapping the link will lunch our activity, where we can do an actual Graph API query to fetch current event attendees and offer some RSVP options, including inviting friends and changing our own RSVP status.

This should be a completely optional feature, not everyone may want a random app to poke around their friends list.

Special Calendars for all events in selected FB Groups

The user selects a bunch of FB Groups they follow and the app will create a calendar for each of the groups and will populate it with all upcoming events with an option to RSVP, which would add it to the regular FBEventSync calendars

Support for recurring events

FB Pages can create recurring events on Facebook. This information is somewhat exported into the iCal, but not through RRULEs, instead, multiple instances seem to present in the iCal.

This needs a some more investigation and a testcase.

Edit the events from the calendar

One enhancement could be to be able to edit the event (description, remainders, color, inviting friends) directly from the calendar.

But I think it may be really difficult to do since the events are not created on our own account.

Custom per-event reminders

From #30:

Custom per-event reminders might be doable since that's a local thing. I haven't looked into it too closely yet and instead went with the application-wide reminders, which you can customize in the app settings.

Double listing

All events are listed twice on my calendar. Birthdays once, but ALL other events twice.

Birthday sync

There's no API, but we can probably pull this from the iCal like I did in the Facebook Akonadi Resouce.

Question: can we make use of the Graph API to be able to get the iCal? At least for the cookies or tokens.

Two Factors Authentication on Facebook

I changed my password on Facebook ans add a two factors authentication so that I receive an SMS to login.
Since I didn't see my events on my calendar like before. I installed again the app to be able to reconnect Facebook, but it seems that it is not possible to authenticate with two factors : "Failed to retrieve calendar URI". I can see the text input to enter the code but the page automatically disappears..

Failed to retrieve Calendar URL

Sign in error appears on the push settings of my Android. I think this app also failed to collect iCal data from the profile's calendar

All-day events are not merged correctly

After 0.26 all-day events are not synced correctly, I suspect commit 711e9ef maybe at fault here.

2018-07-16 13:57:15.617 D/SYNC: iCal sync done
2018-07-16 13:57:16.325 I/FBCalendar: Sync stats for Events I'm Attending
2018-07-16 13:57:16.325 I/FBCalendar:     Events added: 65
2018-07-16 13:57:16.325 I/FBCalendar:     Events modified: 0
2018-07-16 13:57:16.325 I/FBCalendar:     Events removed: 0
.....
2018-07-16 13:59:56.344 D/SYNC: iCal sync done
2018-07-16 13:59:58.910 I/FBCalendar: Sync stats for Events I'm Attending
2018-07-16 13:59:58.911 I/FBCalendar:     Events added: 2
2018-07-16 13:59:58.911 I/FBCalendar:     Events modified: 63
2018-07-16 13:59:58.911 I/FBCalendar:     Events removed: 0
....
2018-07-16 14:09:07.721 D/SYNC: iCal sync done
2018-07-16 14:09:10.499 I/FBCalendar: Sync stats for Events I'm Attending
2018-07-16 14:09:10.500 I/FBCalendar:     Events added: 2
2018-07-16 14:09:10.500 I/FBCalendar:     Events modified: 62
2018-07-16 14:09:10.500 I/FBCalendar:     Events removed: 0
....
....

2018-07-16 14:00:26.322 D/SYNC: iCal sync done
2018-07-16 14:00:30.173 I/FBCalendar: Sync stats for Friends' Birthdays
2018-07-16 14:00:30.173 I/FBCalendar:     Events added: 2077
2018-07-16 14:00:30.173 I/FBCalendar:     Events modified: 0
2018-07-16 14:00:30.174 I/FBCalendar:     Events removed: 0
...
2018-07-16 14:03:32.427 D/SYNC: iCal sync done
2018-07-16 14:03:35.093 I/FBCalendar: Sync stats for Friends' Birthdays
2018-07-16 14:03:35.095 I/FBCalendar:     Events added: 2077
2018-07-16 14:03:35.096 I/FBCalendar:     Events modified: 0
2018-07-16 14:03:35.097 I/FBCalendar:     Events removed: 0

Configurable language for events

Since we sync from the Facebook web, the events we get are in the default Facebook language (which is probably determined by location and nationality of the user), which is not always what users want.

It should be either configurable, or it should pick the default language based on the device language settings.

Crash when updating the last sync timestamp

I have reports for this one exclusively from Android 6.0.

java.lang.IllegalArgumentException: 
  at android.content.ContentResolver.insert (ContentResolver.java:1280)
  at cz.dvratil.fbeventsync.preferences.PreferenceAccessor.putLong (PreferenceAccessor.kt:232)
  at cz.dvratil.fbeventsync.preferences.Preferences.putLong (Preferences.kt:34)
  at cz.dvratil.fbeventsync.Preferences.setLastSync$app_release (Preferences.kt:280)
  at cz.dvratil.fbeventsync.CalendarSyncAdapter.onPerformSync (CalendarSyncAdapter.kt:93)
  at android.content.AbstractThreadedSyncAdapter$SyncThread.run (AbstractThreadedSyncAdapter.java:272)

Still getting duplicate events!

I've had to uninstall for now, because I can't have 20, 30, or 50 duplicates of the same event cluttering my calendar. It isn't just all-day events; this is happening with all different events no matter their duration. It's even persisting after I go back into Facebook and decline an event in an effort to stop it duplicating things. I have "events I've declined" set to NOT show in my calendar, but the same duplicate events are still there despite declining and resyncing. Like many people, I pretty much depend on Facebook events for my calendar and don't want to go back to having to manually enter them, so please make fixing this a priority.

Be able to fully logout from the FB account

Right now Android keeps the apps' webview cookies somewhere, so that user is not asked for FB login over and over again. It should still be possible to fully log-out from FB though so that people can switch accounts or what not.

Events persist in calendar when disabled in settings

Multiday events that I have explicitly marked as "Not Going" in Facebook persist in my local calendar regardless of refreshing either my local calendar or resyncing Event Sync for Facebook (ESF), even after waiting days or restarting phone.

"Events I'm not Attending" is disabled in ESF settings. Yet the declined events continue to show locally as if they were "Events I have not Responded To."

I wonder if this stems from the same bug from issue #32: Disabled calendars are not unsynced

ESF is otherwise fantastic!

Reminder settings not persisted

From various user reports it appears it's not possible to have no all-day reminder at all and custom reminders don't get persisted either.

Location change is not synced

Another issue I just noticed, slightly more important than the color. If
the event gets updated location on Facebook, the new location isn't synced
and still shows the original location in my calendar.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.