Addressbook sync service available for testing
I've just released a test version of an addressbook-sync service. It works in my testing, but because this is an early version, you should either:
The service syncs your FM address book with a GMail address book. This allows you in practice to sync your FM address book with iPhone, Blackberry, Outlook, etc! Here's how it works:
You should ensure that your GMail Contacts list is empty before you first sync, otherwise you'll end up with duplicates (or, empty your FM contacts - if you already have contacts in both FM and GMail that you'd like to keep, have a look at this post: http://www.emaildiscussions.com/show...40&postcount=7 ). At this early testing stage, there's no way to schedule regular syncing - you have to click the 'sync' button manually. Please note: The first sync can take 10 minutes or more, if your address book is large. Do not press Sync again while it's running, or you will definitely have problems. Also, be sure to leave at least a few minutes between each sync, even after it's finished. The sync service is here: http://sync.howard.fm . You don't need to register for it - just use your FM username/password. The first time you use it, it will then ask you for your GMail username/password (although after that it will remember it). Please give it a go, and let me know:
Known limitations:
The more people who try it, the better! If you don't test it now, then I won't be able to fix any problems you find before I release it! NB: this is not an official FastMail service, and is not supported by them. I wrote it for my own use, and am making it available to others in the hope it will be of some use. |
Oh by the way, if you get a server error, it should fill your screen up with lots of info (error message, stack trace, inner exception, etc...). If you see that, please copy the whole thing and paste it here, and let me know what happened when it occurred. When you paste it, use the little '#' button at the top of the forum-post window to wrap it in CODE tags.
|
Quote:
|
Hello Jeremy,
already like how that sounds: "sync with FM" :D I have a few questions before I even give it a try. Will the following process work? 1. Delete all my FM contacts 2. Use an "empty" Google account 3. Sync my Outlook contact to Google 4. Now finally sync my contacts to FM |
Oh and keep up the good work!
I know I'm pushing it here, but how about a Dropbox integration into FM;) |
Quote:
Re: Dropbox - what kind of integration did you have in mind? |
Quote:
To Sync when you already have GMail and FM contacts:
|
Quote:
|
Quote:
|
Quote:
(Having said that - your FM web space is DAV and FTP accessible, and you can attach stuff from there directly to emails that you compose, so hooking in Dropbox isn't so important, IMO). |
I found a bug! :-)
Server Error in '/' Application.
String or binary data would be truncated. The statement has been terminated. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Data.SqlClient.SqlException: String or binary data would be truncated. The statement has been terminated. Source Error: An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. Stack Trace: [SqlException (0x80131904): String or binary data would be truncated. The statement has been terminated.] System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +404 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() +412 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1363 System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +58 System.Data.SqlClient.SqlDataReader.get_MetaData() +118 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +6312385 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +6313986 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +538 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +28 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +256 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) +19 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader() +23 NHibernate.AdoNet.AbstractBatcher.ExecuteReader(IDbCommand cmd) +775 NHibernate.Id.InsertSelectDelegate.ExecuteAndExtract(IDbCommand insert, ISessionImplementor session) +83 NHibernate.Id.Insert.AbstractReturningDelegate.PerformInsert(SqlCommandInfo insertSQL, ISessionImplementor session, IBinder binder) +129 [GenericADOException: could not insert: [FastServicesDotNet.Log][SQL: INSERT INTO [Log] (Message, User_id) VALUES (?, ?); select SCOPE_IDENTITY()]] NHibernate.Id.Insert.AbstractReturningDelegate.PerformInsert(SqlCommandInfo insertSQL, ISessionImplementor session, IBinder binder) +388 NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object[] fields, Object obj, ISessionImplementor session) +277 NHibernate.Action.EntityIdentityInsertAction.Execute() +208 NHibernate.Event.Default.AbstractSaveEventListener.PerformSaveOrReplicate(Object entity, EntityKey key, IEntityPersister persister, Boolean useIdentityColumn, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) +867 NHibernate.Event.Default.AbstractSaveEventListener.SaveWithGeneratedId(Object entity, String entityName, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) +261 NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent event) +49 NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.EntityIsTransient(SaveOrUpdateEvent event) +113 NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.OnSaveOrUpdate(SaveOrUpdateEvent event) +330 NHibernate.Impl.SessionImpl.FireSaveOrUpdate(SaveOrUpdateEvent event) +395 NHibernate.Impl.SessionImpl.SaveOrUpdate(Object obj) +383 FastServicesDotNet.DbSyncLogger.Log(String message) in C:\Docs\Visual Studio 2010\Projects\svn\other\FastServices\FMSync\DbSyncLogger.cs:21 FastServicesDotNet.FmGoogleSync.DoNewGoog_(IEnumerable`1 newGoogContacts) in C:\Docs\Visual Studio 2010\Projects\svn\other\FastServices\FMSync\FmGoogleSync.cs:88 FastServicesDotNet.FmGoogleSync.Run() in C:\Docs\Visual Studio 2010\Projects\svn\other\FastServices\FMSync\FmGoogleSync.cs:49 FmSyncSvc.Controllers.HomeController.Sync() in C:\Docs\Visual Studio 2010\Projects\svn\other\FastServices\FmSyncSvc\Controllers\HomeController.cs:46 lambda_method(Closure , ControllerBase , Object[] ) +79 System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +258 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +39 System.Web.Mvc.<>c__DisplayClassd.<InvokeActionMethodWithFilters>b__a() +125 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +640 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +312 System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +709 System.Web.Mvc.Controller.ExecuteCore() +162 System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__4() +58 System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +20 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +453 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +371 Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1 |
Thanks for posting that. Should be fixed now. Can you please try again? Before you sync again, please:
|
Nope, didn't sync at all. Didn't get an error either. Waited for 10 min. to see if the contact would pop up in my FM, but no luck. I have approx. 600 contacts.
|
It's logging correctly now, so I can see the error. The error is "Failed to insert to FM, Field 'Notes' contains disallowed character(s)". I'll try to work out what characters are allowed, and then clear invalid ones when syncing.
Also, I see that when one insert fails, all the following ones fail too, because the SOAP session gets interrupted - that's why nothing got copied over. I'll let you know when this is fixed. Thanks for helping test! |
Tzzz...if that's all I have to do to test your product, I'm glad to :D You're doing all the work :rolleyes:
|
All times are GMT +9. The time now is 11:02 AM. |
Copyright EmailDiscussions.com 1998-2022. All Rights Reserved. Privacy Policy