RomainVialard / Google-Plus-Community-Migrator

https://docs.google.com/document/d/1UGhxaN5AiRXXL0Ki0DlVWLYJo_YYiEYhM2w1caRhljU/edit
12 stars 5 forks source link

Firebase hosting: project not listed - errors instead #10

Open rosmo01 opened 5 years ago

rosmo01 commented 5 years ago

After opening project (https://glitch.com/edit/#!/g-plus-community-migrator?path=firebase.json:1:1) and selecting "Remix to Edit" the following errors occur instead of listing my gplus migration Firebase project:

UNKNOWN_OPTION: Unknown option: --forbid at commandLineArgs (/opt/nvm/versions/node/v10.14.2/pnpm-global/1/node_modules/.registry.npmjs.org/command-line-args/5.0.2/node_modules/command-line-args/index.js:59:21) at WsServe.getOptions (/opt/nvm/versions/node/v10.14.2/pnpm-global/1/node_modules/.registry.npmjs.org/lws/1.3.0/node_modules/lws/lib/command/serve.js:269:18) at WsServe.execute (/opt/nvm/versions/node/v10.14.2/pnpm-global/1/node_modules/.registry.npmjs.org/lws/1.3.0/node_modules/lws/lib/command/serve.js:280:20) at WsServe.execute (/opt/nvm/versions/node/v10.14.2/pnpm-global/1/node_modules/.registry.npmjs.org/local-web-server/2.6.0/node_modules/local-web-server/lib/command/serve.js:11:18) at Map.start (/opt/nvm/versions/node/v10.14.2/pnpm-global/1/node_modules/.registry.npmjs.org/cli-commands/0.4.0/node_modules/cli-commands/index.js:26:18) at WsCliApp.start (/opt/nvm/versions/node/v10.14.2/pnpm-global/1/node_modules/.registry.npmjs.org/lws/1.3.0/node_modules/lws/lib/cli-app.js:9:26) at Function.run (/opt/nvm/versions/node/v10.14.2/pnpm-global/1/node_modules/.registry.npmjs.org/lws/1.3.0/node_modules/lws/lib/cli-app.js:15:29) at Object. (/opt/nvm/versions/node/v10.14.2/pnpm-global/1/node_modules/.registry.npmjs.org/local-web-server/2.6.0/node_modules/local-web-server/bin/cli.js:5:29) at Module._compile (internal/modules/cjs/loader.js:689:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)

rosmo01 commented 5 years ago

If I entered my firebase projectID in .env right away after edit mode I am able to access the project: https://gplus-e27e4.firebaseapp.com/?1545604654688

RomainVialard commented 5 years ago

Thanks. I've updated the package.json in Glitch to remove the command that was causing this error message. Can you try to make a new remix in Glitch and see if it's working better? (you can keep the same Firebase project)

rosmo01 commented 5 years ago

Errors are gone, but project is still not loading, and the "Deploy to Firebase" is not activating any drop-down list to select a project - just behaving like a button, which indicates a prereq is missing.

RomainVialard commented 5 years ago

Sorry, I don't know what could be causing that. I tested with several Google accounts and all are displaying the dropdown list of Firebase projects...

1PhoenixFox1 commented 5 years ago

I'm having similar issues. My test search works fine. But I have to manually put the Firebase project ID into the Apps Script Web App - no dropdown list appears despite me having created two projects 24 hours ago.

But it tells me it's running and invites me to Glitch. There it tells me deployment is successful. I get a hosting URL that shows the correct project title. I can set up Google authentication and sign myself in, but there is zero content.

Things that are working: the test search query brings up all group content I can remix and deploy successfully

Things that aren't working: Firebase projects aren't showing up in the Apps Script web app Posts are not getting imported to Firebase.

It's got to be an authentication problem with Firebase, no?

4 AM thoughts:

  1. The Google+ community I am trying to migrate is both private and invisible to search - could either of those factor in to the problem?
  2. I am a mod - might the owner have better luck?
  3. Could this thread I found provide a clue? https://stackoverflow.com/questions/53207906/how-to-integrate-firebase-into-google-apps-script-without-using-deprecated-dat

Thank you so much for putting this migration path out into the world. I really hope I can get it to work for our group. I'll look with fresh eyes in the morning.

RomainVialard commented 5 years ago

@1PhoenixFox1 I don't know why some projects aren't correctly retrieved by the new Firebase Management API, but it's not a blocking point as you can enter your Firebase project ID in a text field.

So your main issue is that you are not able to retrieve any data from G+. And indeed I tried and failed to retrieve content from a private community... If that's the case, it means that the G+ API simply forbid to retrieve private content. You could try to make the content of the community publicly accessible and see if it helps but I don't think using the community owner account will help.

RomainVialard commented 5 years ago

@1PhoenixFox1 In fact, best might be to try the search query from a private browsing session. If it doesn't work, chances are it won't work with the script either.

1PhoenixFox1 commented 5 years ago

@RomainVialard thank you very much for getting back to me. Under prerequisites, your tutorial says "if it’s a private / invite-only community, you must use a Google account with access to the content of this community". Naturally that led me to believe it was possible but I think I'm hearing you say that's not the case.

Sadly, it is not possible to make a public community private or a private one public. Public communities can only toggle between open signup/ask to join. Private communities can only choose between visible/invisible to search. Beyond that they are locked in to their initial settings.

So it would seem that there is still no way for anyone other than the poster to retrieve posts from a private community.

I'm new to scripting and Firebase and it would seem I don't have a lot of time to learn before G+ is gone. And @RomainVialard you have come up with such an elegant solution that IMO far outshines the alternatives we've been considering. So I hope you don't mind this question. How hard would it be to adapt your Apps Script Web App so that each member of a private group could use it to retrieve their own posts, import them into the same Firebase project, and reconstruct a community that way?

RomainVialard commented 5 years ago

@1PhoenixFox1 yes, I will update the documentation. I thought using an account with access to the community was enough but it seems I was wrong. Sadly I don't think it's possible to retrieve any content that is not public. So members of a private group won't even be able to retrieve their own posts.

1PhoenixFox1 commented 5 years ago

@RomainVialard FWIW I am absolutely able to retrieve my own posts, including others' comments and +1s, from private groups, via Takeout. Takeout\Google+ Stream\Posts contains every G+ post I've made whether on my own profile, in public groups, or in private groups. Another folder contains all the photo attachments from all my private and public posts as well. Does that change your opinion as to whether it's possible to adapt this?

RomainVialard commented 5 years ago

@1PhoenixFox1 the tool I built is based on the G+ API, which doesn't seem to let us retrieve private content. If Takeout lets us retrieve private posts, then best would be to find a way to reuse this export (if I'm remember well it's possible to retrieve a json file via Google Takeout ? Maybe that can be imported into Firebase, though it means it would require some extra manual work)

1PhoenixFox1 commented 5 years ago

@RomainVialard thank you for the followup. I went back to Takeout to fool around. Bottom line, without access to posts via the API, this is a very daunting task. The default export format for G+ posts is HTML, so even getting all group members to change settings in order to export their own posts as JSON will be a challenge.

I'll work on that though, and also hope that someone with the right skill set, who is motivated to migrate a private community, wanders into this thread and can build on your work. It's not much of a plan LOL but it's all I can do for now. Shame on Google for blocking practically every exit. Merci bien @RomainVialard

RomainVialard commented 5 years ago

@1PhoenixFox1 you can also try this tool: https://gplus-exporter.friendsplus.me/ It's free for up to 3000 posts, which will be enough to test if you are able to retrieve content from a private community (it says it's possible in a comment here but not sure if it's true or not - if true then it should be possible to do the same thing here)

1PhoenixFox1 commented 5 years ago

@RomainVialard thank you so much for that lead! It didn't work for me at all initially, but the new version that was just released is working!! I am able to export all posts from our private community, not just my own posts.

Export options are Wordpress and JSON. I would love to get it into Firebase like your migrator does but I wouldn't know where to start. Wordpress OTOH I can set up in my sleep. :-)

The limit for the free version is 800 posts though.

Thank you again!