function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
ms-hase-q23eems-hase-q23ee 

Customer Communityライセンス に対してRESTインターフェイスは利用可能でしょうか?

お世話になっております。
掲題のとおり、Customer Communityライセンスとして付与されたユーザでRESTへのログインは可能でしょうか?
Customer Communityライセンスの場合、ログイン先からして、[community name].salesforce.comとなるため、
可能かどうか、わかりません。

ためしに、通常のRESTへの入り口(https://login.salesforce.com/services/oauth2/token)に対して
ログインしてみたところ、認証ではじかれてしまいました。


{
    "error": "invalid_grant",
    "error_description": "authentication failure"
}



ご存知の方はご教授ください。
宜しくお願いいたします。
ms-hase-q23eems-hase-q23ee
> [community name].salesforce.com
失礼しました
>[community name].force.com

ですね。
因みにhttps://[community name].force.comの先に、/services/oauth2/token はありません。
(当たり前かですが・・・)
 
ms-hase-q23eems-hase-q23ee
因みに以下のURLを見る限り、

https://developer.salesforce.com/blogs/developer-relations/2014/06/how-to-provision-salesforce-communities-users.html


API Provisioning

You can provision community users by using the SOAP or REST API on the User object. When using this API, keep in mind that the Community user has to be associated to a valid contact and account so these fields need to be set. The account must also be owned by a Salesforce user that has a role.
We also provide the following methods to provision a new user through Apex:
createPortalUser(user, accountId, password) lets you create an external user associated to a Customer or Partner account.
createPersonAccountPortalUser(user, ownerId, password) lets you create an external user associated to a Person Account.


ちゃんと設定すれば、出来ますよ。といっているように見えるのですが、ではどのような手順で認証すれば良いのか、イマイチわかりません。
SAMLを作れば、https://login.salesforce.com/services/oauth2/token/から認証できるようになるのでしょうか?


本番機に迂闊なことは出来ないので、どなたか経験者の方は教えていただけませんでしょうか?

宜しくお願いします。


Taiki YoshikawaTaiki Yoshikawa
API連携まわりはあまり詳しくなくてお力になれるかわからないのですが、外部システムと連携する場合は接続アプリケーションの設定が必要になるかもしれません。

以前Herokuアプリとの接続を試してみました。(画像はクリックすれば拡大されると思います。)
http://tyoshikawa1106.hatenablog.com/entry/2014/09/27/134254

ちなみに検証用の環境は無いでしょうか。
Salesforceの方にはSandbox環境という検証用の環境を作成できるのでそちらを用意するのが安全だと思います。

後は試しにREST APIを実行するのはworkbenchというサイトが使えるかもしれません。
https://workbench.developerforce.com/login.php

SalesforceにログインしてREST APIを実行すると実行結果を確認できたと思います。
ms-hase-q23eems-hase-q23ee
回答ありがとうございます。

> 接続アプリケーションの設定が必要になるかもしれません。

すでに接続アプリの設定は終えて、ユーザーライセンスが"salesforce platform"の場合は正常に接続できることを確認しています。"customer  community"ライセンスの場合、失敗します。逆にherokuは試していないのでご提示のブログが参考になるのか、ならないのか分かりません。


> ちなみに検証用の環境は無いでしょうか。

勿論ありますが、本件は急いでいます。(そもそもユーザーライセンスの違いでRESTが使えたり、使えなかったりする事事態が想定外なので)「この手順で設定すればできる」ということを示す資料があれば、さっさと本番機に適用したいところです。

> 後は試しにREST APIを実行するのはworkbenchというサイトが使えるかもしれません。

こちらはオープンソースで配布されているアプリなので、既に開発機に導入してかなりカスタマイズ掛けています。
そのサイトはレスポンスが遅すぎ!


上記の状態なので、(話は戻りますが) "API Provisioning..."の記述が非常に気になる訳です。sarahって人の書き込みが自分の疑問に近い気がします。・・・でそれを理解した上でどんな手順を踏めば、"customer  community"でRESTを使えるようになるのか?
と言うのが問題点です。

宜しくお願いします。
Taiki YoshikawaTaiki Yoshikawa
ユーザーライセンスが"salesforce platform"の場合は成功する件、了解しました。
customer  communityライセンスのユーザで使用しているプロファイルのシステム管理者権限部分にある「API の有効化」は設定済みでしょうか?

これにチェックがついていないとAPIの処理を実行することができません。
未設定になっている可能性が考えられます。

User-added image
 
ms-hase-q23eems-hase-q23ee
はい、設定済みです。権限周りの設定はうまく行っているsaleseforce platformを参考にして同じようにしています。
Taiki YoshikawaTaiki Yoshikawa
参考になりそうな情報を教えてもらいました。

Salesforceのコミュニティに接続するためにOAuthを使用するには、コミュニティのURLへの完全なパスを使用してサーバーインスタンス名に置き換えます。・・といったことについて説明があります。

Connecting to Salesforce Communities
http://www.salesforce.com/us/developer/docs/chatterapi/Content/quickstart_communities.htm


まだ未確認の内容でしたらご確認ください。