thymeflow / thymeflow-back

Thymeflow's back end implementation
GNU Affero General Public License v3.0
7 stars 1 forks source link

Facebook extractor breaks #13

Open ghazalehnt opened 6 years ago

ghazalehnt commented 6 years ago

Due to the regular updates in the Facebook API, the extraction of FB data breaks:

Invalid Scopes: 
publish_actions, user_about_me, user_education_history, 
user_games_activity, user_relationship_details, user_relationships, 
user_religion_politics, user_website, user_work_history, rsvp_event. 
This message is only shown to developers. Users of your app will ignore 
these permissions if present. Please read the documentation for valid permissions at:
https://developers.facebook.com/docs/facebook-login/permissions

I tried commenting out the invalid scopes in the code, however another error came up.

11:59:17.334 [thymeflow-akka.actor.default-dispatcher-4] INFO  com.thymeflow.api.MainApi$ - Facebook token received at time 20137 milliseconds
11:59:18.002 [scala-execution-context-global-49] WARN  com.thymeflow.api.MainApi$ - Facebook service: Received a non-refreshable token.
11:59:18.333 [scala-execution-context-global-49] ERROR c.t.s.f.FacebookSynchronizer$Publisher - FacebookPublisher: Error getting user data.
spray.json.DeserializationException: Object is missing required member 'updated_time'
        at spray.json.package$.deserializationError(package.scala:23)
        at spray.json.ProductFormats.fromField(ProductFormats.scala:60)
        at spray.json.ProductFormats.fromField$(ProductFormats.scala:50)
        at com.thymeflow.sync.facebook.FacebookSynchronizer$.fromField(FacebookSynchronizer.scala:31)
        at spray.json.ProductFormatsInstances$$anon$12.read(ProductFormatsInstances.scala:384)
        at spray.json.ProductFormatsInstances$$anon$12.read(ProductFormatsInstances.scala:356)
        at akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport.$anonfun$sprayJsonUnmarshaller$1(SprayJsonSupport.scala:30)
        at akka.http.scaladsl.util.FastFuture$.$anonfun$map$1(FastFuture.scala:23)
        at akka.http.scaladsl.util.FastFuture$.strictTransform$1(FastFuture.scala:41)
        at akka.http.scaladsl.util.FastFuture$.transformWith$extension1(FastFuture.scala:45)
        at akka.http.scaladsl.util.FastFuture$.map$extension(FastFuture.scala:23)
        at akka.http.scaladsl.unmarshalling.Unmarshaller.$anonfun$map$3(Unmarshaller.scala:26)
        at akka.http.scaladsl.unmarshalling.Unmarshaller.$anonfun$transform$3(Unmarshaller.scala:23)
        at akka.http.scaladsl.unmarshalling.Unmarshaller$$anon$1.apply(Unmarshaller.scala:58)
        at akka.http.scaladsl.unmarshalling.Unmarshal.to(Unmarshal.scala:25)
        at com.thymeflow.sync.facebook.FacebookSynchronizer$Publisher.$anonfun$queryBuilder$6(FacebookSynchronizer.scala:124)
        at scala.concurrent.Future.$anonfun$flatMap$1(Future.scala:303)
        at scala.concurrent.impl.Promise.$anonfun$transformWith$1(Promise.scala:37)
        at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:60)
        at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402)
        at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
        at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
        at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
        at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: java.util.NoSuchElementException: key not found: updated_time
        at scala.collection.immutable.Map$Map4.apply(Map.scala:204)
        at spray.json.ProductFormats.fromField(ProductFormats.scala:57)
        ... 22 common frames omitted
masda70 commented 6 years ago

Thanks for reporting this issue.